一、np.repeat介紹
np.repeat()是numpy中的一個函數,用於將一個數組中的元素重複指定次數生成新的數組。
其函數定義如下:
numpy.repeat(a, repeats, axis=None)
其中,a表示輸入的數組,repeats表示每個元素重複的次數,默認為1,axis表示沿着哪個軸重複元素。
二、使用np.repeat生成重複數組
接下來我們看一個簡單的例子,生成一個長度為3的一維數組,其中元素都是1。
import numpy as np
a = np.repeat(1, 3)
print(a)
輸出結果為:
[1 1 1]
我們也可以生成一個二維數組:
b = np.repeat([[1, 2], [3, 4]], repeats=2, axis=1)
print(b)
這裡np.repeat()函數的輸入數組是一個包含兩個子數組的二維數組,每個子數組中有兩個元素。函數的重複次數為2,沿着軸1(即列軸)重複元素。
輸出結果為:
[[1 1 2 2]
[3 3 4 4]]
三、使用np.repeat生成不同的重複次數
我們也可以指定不同的重複次數,可以傳入一個列表或數組指定每個元素的重複次數。
c = np.repeat([1, 2, 3], [1, 2, 3])
print(c)
輸出結果為
[1 2 2 3 3 3]
四、np.repeat生成高維數組
np.repeat()函數同樣適用於高維數組。
d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
e = np.repeat(d, 2, axis=0)
print(e)
這裡np.repeat()函數的輸入是一個包含兩個2×2的二維數組的3維數組,函數沿着軸0(即深度軸)重複每個子數組。
輸出結果為:
[[[1 2]
[3 4]]
[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[5 6]
[7 8]]]
五、使用np.tile實現重複生成數組
除了np.repeat()函數,numpy中還有一個類似的函數:np.tile()。np.tile()可以將數組沿各個軸重複指定次數生成新的數組,與np.repeat()的不同之處在於重複的是整個數組而不是每個元素,因此它的用途更為廣泛。
舉個例子:
f = np.array([[1, 2], [3, 4]])
g = np.tile(f, (2, 3))
print(g)
這裡np.tile()函數的輸入數組是一個2×2的二維數組,函數生成的新數組沿着行軸(軸0)重複2次,沿着列軸(軸1)重複3次。
輸出結果為:
[[1 2 1 2 1 2]
[3 4 3 4 3 4]
[1 2 1 2 1 2]
[3 4 3 4 3 4]]
六、總結
本文介紹了Python中利用np.repeat生成重複數組的方法。np.repeat()函數是numpy中的一個函數,通過重複輸入數組中的元素生成新的數組。我們可以使用它來生成任意維度的重複數組,並且還可以指定每個元素的重複次數。此外,我們還介紹了np.tile()函數,它與np.repeat()類似,但重複的是整個數組而不是每個元素。我們可以根據需要靈活地使用這兩個函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/187920.html