import numpy as np
数组 array的创建
功能 |
输入 |
输出 |
创建一维数组 |
np.array([1,2,3],dtype=float) |
array([1., 2., 3.]) |
创建二维数组 |
np.array([[1,2,3],[3,5,1]],dtype=float) |
array([[1., 2., 3.],[3., 5., 1.]]) |
步长为0.5的等差数列 |
np.arange(0,3,1) |
array([0, 1, 2]) |
总数为4个元素的等差数列 |
np.linspace(0,3,4) |
array([0., 1., 2., 3.]) |
生成3个0~1之间的随机数 |
np.random.random(3) |
array([0.12275179, 0.47087408, 0.60714583]) |
生成3个标准正态分布 |
np.random.randn(3) |
array([0.01709864, 0.67941382, 1.02026121]) |
均值为0,标准差为1的正态分布 |
np.random.normal(loc=0,scale=1,size=3) |
array([0.84679958, 0.67801806, 0.53508453]) |
连续复制数组元素1 |
np.repeat([1,2],2) |
array([1, 1, 2, 2]) |
连续复制数组元素1 |
np.tile([1,2],2) |
array([1, 2, 1, 2]) |
元素为1的数组 |
np.ones((2,3)) |
array([[1., 1., 1.],[1., 1., 1.]]) |
元素为0的数组 |
np.zeros((2,3)) |
array([[0., 0., 0.],[0., 0., 0.]]) |
数组的索引与变换
a = np.arange(6).reshape(3,2)
array([[0, 1],
[2, 3],
[4, 5]])
b = np.reshape(a,(2,3))
array([[0, 1, 2],
[3, 4, 5]])
数组的排序
a = np.array([3,2,5,4])
np.argsort(a) #返回array([1, 0, 3, 2], dtype=int64)
a[np.argsort(-a)]
# a = np.array([3,2,5,4]) 分别对应 0,1,2,3
# np.argsort(-a) = array([2, 3, 0, 1], dtype=int64)
# a[np.argsort(-a)] = array([5, 4, 3, 2])
np.sort(a)
a.sort()
#以上两句结果一样,array([2, 3, 4, 5])
#原始:
array([[1, 4, 3],
[4, 5, 1],
[2, 3, 2]])
b.sort(axis=0) #0按列,1按行
#得到:
array([[1, 3, 1],
[2, 4, 2],
[4, 5, 3]])
b.sort(axis=1) #0按列,1按行
#得到:
array([[1, 3, 4],
[1, 4, 5],
[2, 2, 3]])
数组的组合
#原始
a = np.arange(6).reshape(3,2)
array([[0, 1],
[2, 3],
[4, 5]])
b = np.arange(9).reshape(3,3)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
c = np.arange(6).reshape(2,3)
array([[0, 1, 2],
[3, 4, 5]])
#以下开始尝试不同的组合
#1 数组的水平组合(横着连接)
np.hstack((a,b))
np.concatenate((a,b),axis=1)
np.append(a,b,axis=1)
#以上三句等效,结果都是下面:
array([[0, 1, 0, 1, 2],
[2, 3, 3, 4, 5],
[4, 5, 6, 7, 8]])
#2 数组的垂直组合(竖着连接)
np.vstack((b,c))
np.concatenate((b,c),axis=0)
np.append(b,c,axis=0)
#以上三句等效,结果都是下面:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 1, 2],
[3, 4, 5]])
#3 其它组合方式
np.append(a,b)
array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8])
np.append(a,c)
array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5])
数组的统计
函数 |
功能 |
示例 |
np.mean,np.average |
计算平均值 ,加权平均值 |
np.mean(ary) |
np.var |
计算方差 |
np.var(ary) |
np.std |
计算标准差 |
np.std(ary) |
np.min,np.max |
计算最小值/最大值 |
np.min(ary) |
np.argmin,np.argmax |
返回最小值/最大值的索引 |
np.argmin(ary) |
np.ptp |
计算全距,即最大值与最小值的差 |
np.ptp(ary) |
np.percentile |
计算百分位在统计对象中的值 |
np.percentile(ary,90) |
np.median |
计算统计对象的中值 |
np.median(ary) |
np.sum |
计算统计对象的和 |
np.sum(ary) |