arr= [1, 2, 3, 4]
k = 4 (可以是不同的)
所以結果將是2個D陣列。如何在不使用任何回圈的情況下做到這一點?而且不能硬編碼k。 k和arr可以根據輸入而變化。 必須使用numpy.pad
。[[1,2,3, 4,0,0,0] ,#k-1 zeros。
[0,1,2。 3,4,0,0】。]
[0,0,1。 2,3,4,0】。]
[0,0,0。 1,2,3,4] ]
uj5u.com熱心網友回復:
如果你真的要在沒有回圈的情況下進行操作(出于教育目的)
np.pad(np. tile(arr,[k,1]), [(0,0), (0,k) ]. reshape(-1) [:-k].reshape(k,-1)
uj5u.com熱心網友回復:
使用串列理解作為一個單行本 :
import numpy as np
arr= np.array([1,2,3,4] )
k = 4
print( np.array( [ np.pad(arr, ( 0 i , k-1-i ) ) for i in range(0,k)] ) )
輸出 :
[[1 2 3 4 0 0 0]
[0 1 2 3 4 0 0]
[0 0 1 2 3 4 0]
[0 0 0 1 2 3 4]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309446.html
標籤:
上一篇:如何在資料庫視圖中讀取數值?
