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 个数组的形状不同时,广播机制
天道酬勤 循序渐进 技压群雄