import numpy as np #有关数组矩阵运算的库,由c/C++,fortran代码通过线性代数傅里叶变换和随机数生成函数实现 #底层是ndarray结构,shape:数组形状及几行几列。data:数组数据。dtype:数据类型。strides:当前位置到下一个位置需要跨越的字节数。order:访问元素顺序’C'行'F‘列。 a = np.array([1,2,3])# a为整体 print(a) a += 1 # 整体加一 print (a)
创建数组:
import numpy as np a = np.array([[1,2,3],[4,5,6]],dtype = np.complex)# 二维数组 print(a) a.shape = (3,2) #调整数组大小 #两行三列改为三行两列,总元素个数不变 print(a)
#产生数组的函数
import numpy as np
x1 = np.empty([3,2],dtype = int)
#创建一个空数组,参数为:数组形状,数据类型,元素值是不确定的因为没有初始化,空间元素为原先元素
print(x1)
x2 = np.zeros([3,2], dtype = np.int, order = 'C')#order = 'F'是列为主的数组order = ‘C'是行为主的数组
#创建一个全0数组
print(x2)
x3 = np.zeros([2,2],dtype = [('x','i4'),('y','i4')])#创建自定义类型
print(x3)
x4 = np.ones([2,2],dtype = int,order = 'C')
#创建一个全1数组
print(x4)
用各种方法创建不同类型数组:
#产生数列的函数 import numpy as np arr1 = range(0,5,1) #创建一个数列,参数依次为:开始,结束,步长为整数默认为1,未指定元素个数 print(arr1) arr2 = np.arange(3,9,0.2) #创建一个数列参数依次为开始,结束,步长,未指定元素个数,不包含最大值 print(arr2) arr3 = np.linspace(1,5,10) #创建一个数列,参数依次为开始,结束,数字个数,未指定元素间隔,可包含最大值 print(arr3)
用随机函数创建数组:
#使用随机函数创建数组 import numpy as np x1 = np.random.rand(2,3) #产生两行三列随机浮点数组,值范围为0到1 print(x1) x2 = np.random.randint(0,10,(2,2),dtype = int) #参数:值范围从0到10,行列,值类型:只可选int相关的,默认整数数组 print(x2) x3 = np.random.random(2,3) #类似x1 print(x3) x4 = np.random.uniform(1,2,(2,3)) #浮点类型数组,参数:值范围1~2,行列 print(x4)
数组切片:
arr = np.arange(24).reshape(4,6) #首先产生一个数列然后通过reshape将一维变为二维4行6列的数组 print(arr) arr1 = arr[1:3,1:3] #留下数组的第一行到第二行(写3是不包含第3行的),保留列的第一列到第二列(写3是不包含第3列的) print(arr1) arr1 = arr[1: , :3] #末尾不写默认最后一行/列,起始不写默认第一行/列 print(arr1)
#生成一个2*3*4的三维数组(即想象一个正方体(即两个3*4的二维数组叠起来就成为了三维)切片保留两个二维数组的第一行得到一个2*4的数组 import numpy as np arr1 = np.arange(12).reshape(3,4) arr11 = arr1[:1,:] arr2 = np.arange(12).reshape(3,4) arr22 = arr2[:1,:] arr3 = np.array([arr1,arr2]) #np.array将其他数据结构转换为数组类型 arr33 = np.array([arr11,arr22]) print(arr3) print(arr33) #—————————————————————————————————————— arr5 = np.arange(12).reshape(2,3,4) arr6 = arr5[0:2,0,0:5] print(arr6) #可以直接形成多维数组



