numpy基础

# Ndarray 对象 
import numpy as np
a = np.array([1,2,3])                           #一维
a = np.array([[1,  2],  [3,  4]])               #多维
a = np.array([1, 2, 3, 4, 5], ndmin =  2)       #最小维度
a = np.array([1,  2,  3], dtype = complex)      #dtype 

# NumPy 数据类型
dt = np.dtype(np.int32)                         # 使用标量类型
dt = np.dtype('i4')                             # int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替
dt = np.dtype('<i4')                            # 字节顺序标注
dt = np.dtype([('age',np.int8)])                # 首先创建结构化数据类型
a = np.array([(10,),(20,),(30,)], dtype = dt)   # 将数据类型应用于 ndarray 对象
a['age']                                        # 类型字段名可以用于存取实际的 age 列   
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) 

# NumPy 数组属性 
a = np.arange(24) 
a.ndim                                          #ndim维数
a.shape                                         #shape维度
a = np.array([[1,2,3],[4,5,6]]) 
a.shape =  (3,2)                                #调整维度
b = a.reshape(3,2)                              #reshape调整维度
x = np.array([1,2,3,4,5], dtype = np.int8)      
print (x.itemsize)                              #ndarray.itemsize 以字节的形式返回数组中每一个元素的大小
print (x.flags)                                 #ndarray.flags 返回 ndarray 对象的内存信息

# NumPy 创建数组 
x = np.empty([3,2], dtype = int)                #numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
y = np.zeros((5,), dtype = np.int)              #创建指定大小的数组,数组元素以 0 来填充
z = np.ones([2,2], dtype = int)                 #创建指定形状的数组,数组元素以 1 来填充

#NumPy 从已有的数组创建数组 
x =  [1,2,3] 
a = np.asarray(x) 
y =  (1,2,3) 
b = np.asarray(y)                               #将列表、元组转换为 ndarray:

s =  b'Hello World' 
a = np.frombuffer(s, dtype =  'S1')             #numpy.frombuffer 用于实现动态数组
list=range(5)
it=iter(list)
x=np.fromiter(it, dtype=float)                  #使用迭代器创建 ndarray 

# NumPy 从数值范围创建数组
x = np.arange(5)                                #arange 函数创建数值范围并返回 ndarray 对象
a = np.linspace(1,10,num=10)                    #numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的
b = np.logspace(1.0,  2.0, num =  10)           #numpy.logspace 函数用于创建一个于等比数列

# NumPy 切片和索引 
a = np.arange(10)
s = slice(2,7,2)                                # slice从索引 2 开始到索引 7 停止,间隔为2
b = a[2:7:2]                                    # 从索引 2 开始到索引 7 停止,间隔为 2
b = a[2:]                                       # 从索引 2 开始到索引 7 停止,间隔为 2

# NumPy 广播(Broadcast) 
a = np.array([1,2,3,4]) 
b = np.array([10,20,30,40]) 
c = a * b 

a = np.array([[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]])
b = np.array([1,2,3])
print(a + b)                                        # 2 个数组的形状不同时,广播机制
posted @ 2022-02-21 16:56  wuyuan2011woaini  阅读(22)  评论(0编辑  收藏  举报