数组形状操作

(1)生成二维随机数组

import numpy as np
a = np.random.random((3, 2))

(2) 查看数组维度(形状)

a.shape

(3) 更改数组的形状 (不改变原始数组)

a.reshape(2, 3)  # reshape 并不改变原始数组

(4)更改数组形状(改变原始数组):

a.resize(2, 3)  # resize 会改变原始数组

(5) 展平数组

a.ravel()

(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)