Numpy 常用基础操作
原创
©著作权归作者所有:来自51CTO博客作者不想悲伤到天明的原创作品,请联系作者获取转载授权,否则将追究法律责任
数组形状操作
(1)生成二维随机数组
import numpy as np
a = np.random.random((3, 2))
(2) 查看数组维度(形状)
(3) 更改数组的形状 (不改变原始数组)
a.reshape(2, 3) # reshape 并不改变原始数组
(4)更改数组形状(改变原始数组):
a.resize(2, 3) # resize 会改变原始数组
(5) 展平数组
(6)拼接数组
b = np.random.randint(10,size=(3,3))
c = np.random.randint(10,size=(3,3))
# 垂直拼接
d = np.vstack((b,c))
# 水平拼接
e = np.hstack((b,c))
print(d)
print(e)
------------
[[3 8 1]
[4 9 9]
[2 8 5]
[3 3 2]
[3 7 1]
[2 2 7]]
[[3 8 1 3 3 2]
[4 9 9 3 7 1]
[2 8 5 2 2 7]]
(7) 分割数组
# 沿横轴分隔数组
f = np.hsplit(d,3)
# 沿纵轴分隔数组
g = np.vsplit(e,3)
d :
[[9 6 2]
[6 2 7]
[9 7 6]
[4 7 1]
[4 8 2]
[3 8 7]]
f :
[array([[9],
[6],
[9],
[4],
[4],
[3]]), array([[6],
[2],
[7],
[7],
[8],
[8]]), array([[2],
[7],
[6],
[1],
[2],
[7]])]
数组排序
(1) 返回最大/最小值
a = np.array(([1, 4, 3], [6, 2, 9], [4, 7, 2]))
# 返回每列最大值
print(np.max(a,axis=0))
# 返回每行最大值
print(np.max(a,axis=1))
-----------------------
[6 7 9]
[4 9 7]
(2) 返回最大/最小值索引
# 返回每列最大值的索引
print(np.argmax(a, axis=0) )
# 返回每行最大值的索引
print(np.argmax(a,axis=1))
# 返回每列最小值的索引
print(np.argmin(a,axis=0))
# 返回每行最小值的索引
print(np.argmin(a,axis=1))
数组统计
# 生成示例数组
a = np.array(([1, 4, 3], [6, 2, 9], [4, 7, 2]))
(1) 统计数组中位数
# 每一列的平均值
print(np.median(a,axis=0))
# 每一行的平均值
print(np.median(a,axis=1))
(2) 统计数组的算数平均数
# 每一列
print(np.mean(a,axis=0))
# 每一行
print(np.mean(a,axis=1))
(3) 统计数组的加权平均值
# 统计加权平均值
print(np.average(a,axis=0))
print(np.average(a,axis=1))
(4) 统计数组的方差
# 统计数组的方差
print(np.var(a,axis=0))
print(np.var(a,axis=1))
(5) 统计数组各列的标准偏差
np.std(a, axis=0)
np.std(a, axis=1)