Numpy:np.vstack()&np.hstack() flat/flatten

一 .  np.vstack: 按垂直方向(行順序)堆疊數組構成一個新的數組數組

In[3]: import numpy as np In[4]: a = np.array([[1,2,3]]) a.shape Out[4]: (1, 3) In [5]: b = np.array([[4,5,6]]) b.shape Out[5]: (1, 3) In [6]: c = np.vstack((a,b)) # 將兩個(1,3)形狀的數組按垂直方向疊加
print(c) c.shape # 輸出形狀爲(2,3)
[[1 2 3] [4 5 6]] Out[6]: (2, 3) In [7]: a = np.array([[1],[2],[3]]) a.shape Out[7]: (3, 1) In [9]: b = np.array([[4],[5],[6]]) b.shape Out[9]: (3, 1) In [10]: c = np.vstack((a,b))  # 將兩個(3,1)形狀的數組按垂直方向疊加
print(c) c.shape # 輸出形狀爲(6,1)
[[1] [2] [3] [4] [5] [6]] Out[10]: (6, 1)

二 . np.hstack:按水平方向(列順序)堆疊數組構成一個新的數組spa

In[11]: a = np.array([[1,2,3]]) a.shape Out[11]: (1, 3) In [12]: b = np.array([[4,5,6]]) b.shape Out[12]: (1, 3) In [16]: c = np.hstack((a,b)) # 將兩個(1,3)形狀的數組按水平方向疊加
print(c) c.shape # 輸出形狀爲(1,6)
[[1 2 3 4 5 6]] Out[16]: (1, 6) In [17]: a = np.array([[1],[2],[3]]) a.shape Out[17]: (3, 1) In [18]: b = np.array([[4],[5],[6]]) b.shape Out[18]: (3, 1) In [19]: c = np.hstack((a,b)) 將兩個(3,1)形狀的數組按水平方向疊加 print(c) c.shape # 輸出形狀爲(3,2)
[[1 4] [2 5] [3 6]] Out[19]: (3, 2)

三 .  numpy.ndarray.flat/flattencode

1. flat返回的是一個迭代器,能夠用for訪問數組每個元素blog

import numpy as np a = np.arange(4).reshape(2,2) print(a) for i in a.flat: print(i) #迭代器能夠用list進行輸出
print(list(a.flat)) print(type(a.flat))#返回類型爲 numpy.flatiter #能夠用索引對迭代器進行引號
a.flat[3]
#輸出:
[[0 1] [2 3]] 0 1 2 3 [0, 1, 2, 3] <class 'numpy.flatiter'> 3

2. ndarray.flatten(order=’C’)排序

Return a copy of the array collapsed into one dimension.
將數組的副本轉換爲一維,並返回
索引

 

可選參數,order:{‘C’,‘F’,‘A’,‘K’}內存

 

    • ‘C’:C-style,行序優先
    • ‘F’:Fortran-style,列序優先
    • ‘A’:if a is Fortran contiguous in memory ,flatten in column_major order
    • ‘K’:按照元素在內存出現的順序進行排序
      默認爲’C’
a = np.array([[4,5],[4,9]]) #默認按行轉換
b= a.flatten() print(b) #換成列來劃分
c = a.flatten('F') print(c)
[4 5 4 9] [4 4 5 9]
本站公眾號
   歡迎關注本站公眾號,獲取更多信息