(一).创建数组
import numpy as np(导入numpy模块)
1.创建基本数组
(1).arr = np.array([1,2,4,8,0]) #列表转为数组
list = arr.tolist() / list = list(arr) #数组转为列表
(2).arr = np.arange(start,stop,step) / np.arange(num) #创建指定范围的序列数组
如:arr=np.arange(4) --> arr = array([0, 1, 2, 3])
arr=np.arange(1,10,2) --> arr = array([1, 3, 5, 7, 9])
(3).arr = np.linspace(start,stop,num,endpoint=True) #创建指定元素数目的序列数组
参数说明:num(元素数目) endpoint(是否包含终值stop:默认为True)
如:arr = np.linspace(1,3,4) --> array([1. , 1.6, 2.3, 3. ])
arr = np.linspace(1,3,4,endpoint=False) --> array([1. , 1.5, 2. , 2.5])
(4).创建元素为全为0的数组:
arr = mp.zeros(3) ==> array([0.,0.,0.])
arr = np.zeros((2,2)) ==> array([[0., 0.], #创建指定行列的0数组
[0., 0.]])
(5).创建元素为全为1的数组:
arr = np.ones(3) ==> array([1.,1.,1.])
arr = np.ones((1,2)) ==> array([[1., 1.]]) #创建指定行列的1数组
2.创建随机数组
(1).均匀分布:
arr = np.random.rand(2,2) #创建元素从均匀分布(0-1)中抽取的随机数组
arr = np.random.randn(1,3) #创建元素从正态分布中抽取的随机数组
(2).指定范围和数组大小:(有放回抽样)
arr = np.random.uniform(lower=,high=,size=) #元素值为浮点型
如:arr = np.random.uniform(10) ==> 5.6
arr = np.random.uniform(1,5,2) ==> array([3.740878, 1.817809])
arr = np.random.uniform(1,5,(3,3)) ==>
array([[3.76929046, 4.50555661, 4.57842665],
[1.34017685, 1.15621913, 1.67932168],
[4.51257001, 1.39338734, 2.6844305 ]])
arr = np.random.randint(lower=,high=,size=) #元素值为整形
如:arr = np.random.randint(10/4.5) ==> 3/1
arr = np.random.randint(1.5,4.5,3) ==> array([1, 1, 2])
3.生成函数分布
(1).正态分布:
arr = np.random.normal(loc=,scale=,size=)
参数说明:loc(均值) + scale(标准差) + size(维度)
如:arr = np.random.normal(loc=0,scale=1,size=(1,5))
==>array([[-0.24937038, 0.7299756 , 0.37299379, 0.53381091, -0.0919733 ]])
(2).贝塔分布:
arr = np.random.beta(a=,b=,size=)
(3).二项分布:
arr = np.random.binomial(n=,p=,size=,)
4.基本属性
(1).arr.shape / arr.dtype / arr.reshape(n,m) (重构数组)/ arr.size(返回数组元素数)
(二).数组计算
1.条件运算:
arr = np.random.randint(1,20,size=(3,5))
arr = array([[ 4, 5, 18, 12, 13],
[17, 14, 10, 19, 16],
[ 1, 5, 16, 3, 8]])
np.where(arr<10,0,1) ==> array([[0, 0, 1, 1, 1],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0]])
注:将元素值小于10的元素变为0,大于10的变为1
? np.where(arr[arr<10]) ==> 返回元素值小于10的索引构成的数组
2.最大值:
np.max(arr,axis=0):返回每列的最大值
np.max(arr,axis=1):返回每行的最大值
3.最小值:
np.min(arr,axis=0):返回每列的最小值
np.min(arr,axis=1):返回每行的最小值
4.最值索引:
np.argmax(arr)
np.argmin(arr)
5.返回元素值(唯一)及索引及出现次数:
elem,index,count = np.unique(arr,return_index=True,return_counts=True)
(三).数组连接
f1 = np.random.randint(1,10,[2,2])
f2 = np.random.randint(1,10,[2,2])
np.vstack((f1,f2)) ==> 垂直连接
np.hstack((f1,f2)) ==> 水平连接
网友评论