Python:Numpy—reshape、transpose、flatten

reshape

不改變原數據情況下修改形狀且創造一個新的np數組

numpy.reshape(a, newshape, order=‘C’)

a:要修改形狀的數組
newshape:整數或者整數數組,新的形狀應當兼容原有形狀
order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘k’ – 元素在內存中的出現順序。

a=[1,2,3,4,5,6]
b=np.reshape(a, (2,3),'C')
c=np.reshape(a, (2,3),'F')
print(a)
print(b)
print(c)

>>>
[1, 2, 3, 4, 5, 6]
[[1 2 3]
 [4 5 6]]  # 按行讀下來是123456
[[1 3 5]
 [2 4 6]]  # 按列讀下來是123456

ndarray調用

ndarray:N 維數組對象 ndarray,下面的np.array(a)就是將a化爲ndarray

ndarray.reshape(d1,d2…)

a=[1,2,3,4,5,6]
b=np.array(a).reshape( 2,3)
c=np.array(a).reshape(2,3)

transpose

對換數組的維度,倒置

ndarray.T
ndarray.transpose

a=[[1,2,3],
   [4,5,6]]
b=np.array(a).transpose()
c=np.array(a).T
print(a)
print(b)
print(c)


>>>
[[1, 2, 3], [4, 5, 6]]
[[1 4]
 [2 5]
 [3 6]]
[[1 4]
 [2 5]
 [3 6]]

flatten

不改變原數據情況下修改爲1維且創造一個新的np數組

ndarray.flatten(order=‘C’)

order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘K’ – 元素在內存中的出現順序

a=[[1,2,3],
   [4,5,6]]
b=np.array(a).flatten('C')
c=np.array(a).flatten('F')
print(a)
print(b)
print(c)


>>>
[[1, 2, 3], [4, 5, 6]]
[1 2 3 4 5 6]
[1 4 2 5 3 6]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章