我有一個 50 x 4 的 numpy 陣列,我想重復這些行以使其成為一個 500 x 4 的陣列。但要注意的是,我不能只重復沿第 0 軸的行。我想在擴展陣列中有更多更小的行和更少的大行。
輸入陣列包含如下所示的資料:
[1, 1, 16, 5]
[8, 10, 512, 10]
...
[448, 8192, 409600, 150]
在這里,初始行很小,最后一行很大。但是每列的比例是不同的。即,16 對于第 2 列可能是一個非常低的值,但對于第 1 列可能是一個很高的值
我如何使用 numpy 甚至串列來實作這一點?
預期輸出將是一個形狀為 500 x 4 的向量,其中每一行都取自輸入向量,并重復一定次數。
[1, 1, 16, 5] # repeated thrice
[1, 1, 16, 5]
[1, 1, 16, 5]
[8, 10, 512, 10] # repeated twice
[8, 10, 512, 10]
...
[448, 8192, 409600, 150]
uj5u.com熱心網友回復:
您可以使用np.repeatso 在陣列中重復任意次數的給定值,然后將其用作輸入陣列的索引(因為np.repeat不能直接在二維陣列上作業)。這是一個例子:
# Example of random input
inputArr = np.random.randint(0, 1000, (50, 4))
# Example with [2, 3, ..., 52] repeated lines
counts = np.arange(2, 52)
# Actual computation
outputArr = inputArr[np.repeat(np.arange(inputArr.shape[0]), counts)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/533459.html
