numpy陣列有水平組合、垂直組合和深度組合等多種組合方式,我們將使用vstack、dstack、hstack、column_stack、row_stack以及concatenate函式來完成陣列的組合。
建立一些陣列:
import numpy as npa = np.arange(9).reshape(3,3)
print('原始陣列:',a)
b = 2 * a
print('乘2後的陣列:',b)
執行結果:
#(1)水平組合,將ndarray物件構成的元組作為引數,傳給 hstack函式。如下所示:c = np.hstack((a,b))
print("組合後的陣列:\n",c)
執行結果:
# 我們也可以用concatenate函式來實現同樣的效果,如下所示:c = np.concatenate((a,b),axis=1)
print("組合後的陣列:\n",c)
執行結果:
# (2) 垂直組合 垂直組合同樣需要構造乙個元組作為引數,只不過這次的函式變成了 vstack。如下所示:c = np.vstack((a,b))
print("組合後的陣列:\n",c)
執行結果:
# 同樣,我們將concatenate函式的axis引數設定為0即可實現同樣的效果。這也是axis參 數的預設值:c = np.concatenate((a,b),axis=0)
print("組合後的陣列:\n",c)
執行結果:
(3) 深度組合 將相同的元組作為引數傳給dstack函式,即可完成陣列的深度組合。所謂深度組合,就是將一系列陣列沿著縱軸(深度)方向進行層疊組合。舉個例子,有若干張二維平 麵內的影象點陣資料,我們可以將這些影象資料沿縱軸方向層疊在一起,這就形象地解釋了什麼 是深度組合。
'''c = np.dstack((a,b))
print("組合後的陣列:\n",c)
執行結果:
# (4)列組合 column_stack函式對於一維陣列將按列方向進行組合,如下所示:oned = np.arange(2)
print('原始陣列:\n',oned)
twice_oned = 2 * oned
print('乘2後的陣列:\n',twice_oned)
print("列組合後的陣列:\n",np.column_stack((oned,twice_oned)))
執行結果:
而對於二維陣列,column_stack與hstack的效果是相同的:
print("二維陣列列組合:\n",np.column_stack((a,b)))print("column_stack組合與hstack組合相等:\n",np.column_stack((a,b)) == np.hstack((a,b)))
執行結果:
(5) 行組合 當然,numpy中也有按行方向進行組合的函式,它就是row_stack。對於兩個一維陣列,將直接層疊起來組合成乙個二維陣列。
oned = np.arange(2)print('原始陣列:\n',oned)
twice_oned = 2 * oned
print('乘2後的陣列:\n',twice_oned)
c = np.row_stack((oned,twice_oned))
print("行組合後的陣列:\n",c)
執行結果:
對於二維陣列,row_stack與vstack的效果是相同的:
print("二維陣列行組合:\n",np.row_stack((a,b)))print("row_stack組合與vstack組合相等:\n",np.row_stack((a,b)) == np.vstack((a,b)))
執行結果:
PHP陣列 陣列合併
陣列合併函式 array merge或者 array merge 將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。如果只...
組合多個陣列
function joinresult result,main key result key value key arr a1 array array 0 1 org id 10 new customers 100 new orders 100 array 0 2 org id 20 new cus...
php陣列合併
php的陣列在這門語言裡使用得非常多。陣列的一些常見操作像split explode,join implode,排序 sort,asort,ksort,arsort 兩陣列合併 array combine 鍵值翻轉 array flip 當然還有比較複雜的陣列合併。陣列合併至少有4種形式。1.第一種...