concatenate()
我們先來介紹最全能的concatenate()函數,后面的幾個函數其實都可以用concatenate()函數來進行等價操作。
concatenate()函數根據指定的維度,對一個元組、列表中的list或者ndarray進行連接,函數原型:
numpy.concatenate((a1, a2, ...), axis=0)
先來看幾個例子,一個2*2的數組和一個1*2的數組,在第0維進行拼接,得到一個3*2的數組:
a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6]]) np.concatenate((a, b), axis=0)
輸出為:
array([[1, 2], [3, 4], [5, 6]])
進一步,一個2*2的數組和一個2*1的數組,在第01維進行拼接,得到一個2*3的數組:
np.concatenate((a, b.T), axis=1)
輸出為:
array([[1, 2, 5], [3, 4, 6]])
上面兩個簡單的例子中,拼接的維度的長度是不同的,但是其他維度的長度必須是相同的,這也是使用concatenate()函數的一個基本原則,違背此規則就會報錯,例如一個2*2的數組和一個1*2的數組,在第1維進行拼接:
np.concatenate((a, b), axis=1)
上面的代碼會報錯:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
如果拼接的數組是一維數組,則axis只能為0,因為若兩個一維數組的shape為(n1,),(n2,), 拼接之后為(n1+n2,)。由於第二維沒有長度,所以也就不存在axis=1了
作者:文哥的學習日記
鏈接:https://www.jianshu.com/p/cfe655cb5dd6
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。
作者:文哥的學習日記
鏈接:https://www.jianshu.com/p/cfe655cb5dd6
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。