Numpy是Python中一個重要的科學計算庫,該庫包含了高性能的多維數組和矩陣計算的函數。其中,合併兩個或多個數組是數組操作中最常見的操作之一。本文將介紹了多個方面的numpy合併的用法。
一、vstack和hstack
vstack可以將數組堆疊在垂直方向上,即沿著第一個軸添加元素,而hstack可以將數組堆疊在水平方向上,即沿著第二個軸添加元素。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))
print(c)
d = np.hstack((a,b))
print(d)
輸出:
[[1 2 3]
[4 5 6]]
[1 2 3 4 5 6]
在這個例子中,我們定義了兩個一維數組a和b。我們使用了vstack將它們沿著垂直方向堆疊,並使用hstack將它們沿著水平方向堆疊。
二、concatenate
concatenate函數可以沿著任意軸連接兩個或多個數組。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
c = np.concatenate((a, b), axis=0)
d = np.concatenate((a,b.T), axis=1)
print(c)
print(d)
輸出:
[[1 2]
[3 4]
[5 6]]
[[1 2 5]
[3 4 6]]
在這個例子中,我們定義了兩個二維數組a和b。我們使用了concatenate將它們沿著軸0(行)連接,輸出的形狀為(3,2)。 接著,我們使用concatenate沿著軸1(列)連接,輸出的形狀為(2,3)。
三、stack
stack函數可以沿著新軸連接兩個或多個數組,新軸的位置由參數axis指定。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.stack((a, b), axis=0)
d = np.stack((a, b), axis=1)
e = np.stack((a, b), axis=2)
print(c)
print(d)
print(e)
輸出:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]
[[[1 5]
[2 6]]
[[3 7]
[4 8]]]
在這個例子中,我們定義了兩個二維數組a和b。我們使用了stack沿著新軸(axis=0,1,2)連接。 以axis=0為例,數組a和b將被沿著新的第一軸連接,因此輸出的形狀將為(2,2,2)。所有三種用法的輸出結果都基於相同的概念,但數組的形狀可能會有所不同。
四、tile
tile函數可以將一個數組重複指定的次數,這對於擴展數組是非常有用的。
import numpy as np
a = np.array([1, 2, 3])
b = np.tile(a, 2)
c = np.tile(a, (2, 2))
print(b)
print(c)
輸出:
[1 2 3 1 2 3]
[[1 2 3 1 2 3]
[1 2 3 1 2 3]]
在這個例子中,我們使用tile函數將數組a重複兩次,然後輸出該數組。 然後,我們使用tile函數將數組a沿著兩個軸重複2次,輸出該數組。
五、repeat
repeat函數可以將數組沿著指定的軸重複指定的次數。類似於tile,但是該函數按照元素重複,而不是整個數組重複。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.repeat(a, 2)
c = np.repeat(a, 2, axis=0)
d = np.repeat(a, 2, axis=1)
print(b)
print(c)
print(d)
輸出:
[1 1 2 2 3 3 4 4]
[[1 2]
[1 2]
[3 4]
[3 4]]
[[1 1 2 2]
[1 1 2 2]
[3 3 4 4]
[3 3 4 4]]
在這個例子中,我們定義了一個二維數組a。我們使用了repeat函數沿著軸0(行)重複兩次,並且按照元素的順序重複輸出的一維數組。 接著,我們使用repeat函數沿著軸0(行)重複兩次,形狀變成了(4,2) , 接著,我們使用repeat函數沿著軸1(列)重複兩次,形狀變成了(2,4)
六、Conclusion
在numpy中,我們有很多合併數組的函數,包括vstack,hstack,concatenate,stack,tile和repeat。每個函數都有自己的特殊用途和用法,您可以根據需要選擇最合適的方法將數組合併。
原創文章,作者:UKAGW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351704.html