numpy數組合並[np.c_, np.r_, no.column_stack]
阿新 • • 發佈:2018-12-11
《驚蟄》 誰提了劍嫁衣勾破 披身貧賤夜色 把殺機淹沒
np.r_, np.c_
在實際資料處理中,操作的都是二維資料,因此此處講的都是最簡單的形式。
np.c_
等同於np.r_[’-1’, array, array],相當於在最後一個軸上進行資料合併, shape的最後一維. 對於二維來說最後一個軸就是列, 第一個軸就是行
a = np.array([[0, 1, 2], [3, 4, 5]])
np.c_[a, a]
# out:
'''
array([[0, 1, 2, 0, 1, 2],
[3, 4, 5, 3, 4, 5]])
'''
np.r_['-1', a,a]
# out:
'''
rray([[0, 1, 2, 0, 1, 2],
[3, 4, 5, 3, 4, 5]])
'''
# 再看一個例子:
np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]
# 注意輸出:
'''
array([[1, 2, 3, 0, 0, 4, 5, 6]])
'''
np.r_[‘param’, array[,array,…]]
param:
- -1 按最後一個軸合併, <=>
np.c_[array[,array,...]]
- 0 按第一個軸合併
a = np.array([[1,2,3]])
a
''' array([[1, 2, 3]])'''
np.r_['-1', a, a]
'''
array([[1, 2, 3, 1, 2, 3]])
'''
np.r_['0', a, a]
'''
array([[1, 2, 3],
[1, 2, 3]])
'''
重點:
好吧,這個得好好理解,但是專案最常用的就是想一個二維陣列中新增行,或者列 1、將一個一維數組合併為一個二維陣列的列, 向一個二維陣列中新增一個新的列,比如新增一個新的屬性,或特徵值
a = np.array([[1, 2, 3], [4, 5, 6]])
# 2 * 3的二維陣列
a
out:
array([[1, 2, 3], [4, 5, 6]])
# 新增新的列
add_columns = [7, 8]
# option 1:
np.c_[a, add_columns]
# option 2
np.column_stack((a, add_columns))
out:
array([[1, 2, 3, 7], [4, 5, 6, 8]])
- 向二維陣列新增行,比如新增一個新的樣本 這個比較煩, 如果新增的陣列不是二維陣列,得先轉化為二維陣列
add_rows = [7, 8, 9]
add_rows = np.array(add_rows).reshape(1, -1)
add_rows
# out:
'''array([[7, 8, 9]])'''
np.concatenate((a, add_rows), axis=0)
#out:
'''array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
'''
np.r_['0', a , add_rows]
#out:
'''array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
'''