叠加数组形状
1.reshape(number,row,column)函数和b.shape
将数组重组为number个,行为row,列为column的数组。
import numpy as np
a= np.arange(20).reshape(2,2,5)
print(a)
b = a[0]
print(b)
[[[ 0 1 2 3 4]
[ 5 6 7 8 9]]
[[10 11 12 13 14]
[15 16 17 18 19]]]
[[0 1 2 3 4]
[5 6 7 8 9]]
b.shape = (row,column)
b = np.arange(24).reshape(2,3,4)
b.shape=(6,4)
print(b)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]
2.降维ravel()函数和flatten()函数
将多维数组变成一维数组。flatten()返回的是真实的数组,需要重新分配新的内存空间;而ravel()函数返回的只是数组的视图。
import numpy as np
b = np.arange(24).reshape(2,3,4)
print(b.ravel())
print(b.flatten())
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
3.转置transpose()和a.T
b = np.arange(24).reshape(2,3,4)
b.transpose()
b.T
array([[[ 0, 12],
[ 4, 16],
[ 8, 20]],
[[ 1, 13],
[ 5, 17],
[ 9, 21]],
[[ 2, 14],
[ 6, 18],
[10, 22]],
[[ 3, 15],
[ 7, 19],
[11, 23]]])
4.堆叠数组vstack()、dstack()、hstack()、column_stack、row_stack()和concatenate()
hstack((a,b)):水平叠加,行方向的叠加,叠加对象为数组a和数组b。
a = np.arange(9).reshape(3,3)
b = 2*a
np.hstack((a,b))
array([[ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16]])
np.concatenate()函数实现水平叠加,axis=0是沿着行的垂直方向向下,axis=1是沿着列的水平方向延伸。
a = np.arange(9).reshape(3,3)
b = 2*a
np.concatenate((a,b), axis=1)
array([[ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16]])
vstack((a,b))函数垂直叠加
a = np.arange(9).reshape(3,3)
b = 2*a
np.vstack((a,b))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16]])
拆分数组:hsplit(), vsplit(), dsplit(), split()
hsplit(a, number)函数:a数组分为number列
a = np.array([[0, 1, 2],
[3, 3, 5],
[4, 6, 7]
])
print(np.hsplit(a, 3))
print(np.split(a, 3, axis=1))
[array([[0],
[3],
[4]]), array([[1],
[3],
[6]]), array([[2],
[5],
[7]])]
vsplit(a, number):a数组分为number行
import numpy as np
a = np.array([[0, 1, 2],
[3, 3, 5],
[4, 6, 7]
])
print(np.vsplit(a, 3))
print(np.split(a, 3, axis=0))
[array([[0, 1, 2]]), array([[3, 3, 5]]), array([[4, 6, 7]])]
数组的转换:.tolist()
将数组转换为列表。
import numpy as np
a = np.array([[0, 1, 2],
[3, 3, 5],
[4, 6, 7]
])
print(a.tolist())
[[0, 1, 2], [3, 3, 5], [4, 6, 7]]