陣列的組合

2022-08-20 16:51:11 字數 2690 閱讀 9029

numpy陣列有水平組合、垂直組合和深度組合等多種組合方式,我們將使用vstack、dstack、hstack、column_stack、row_stack以及concatenate函式來完成陣列的組合。

建立一些陣列:

import numpy as np

a = 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.第一種...