![](/img/trans.png)
[英]How can I create np.ndarray from four arrays of different lengths without using loops?
[英]Create an ndarray from arrays of different lengths
如何從不同長度的(1D-)數組優雅地創建NumPy ndarray
,並填充其余部分?
數組始終是一維的,它們具有不同的長度(最大長度在20到100之間變化)。
說有
a = range(40)
b = range(30)
結果ndarray
應該是
X = [[0,1,2,3,...,39,40],
[0,1,2,...29,30,0,0,...,0]]
建立中介
I = [a,b]
並通過填充maximum
I[1].extend([0] * (maximum - len(I[1])))
然后可以通過轉換
X = np.array(I)
可以工作,但是沒有內置的東西/通過PyPI可用/更多pythonic嗎?
您可以創建一個零數組( np.zeros
),然后用a
和b
替換行。 不確定是否比您的方式更好
In [27]: a=range(40)
In [28]: b=range(30)
In [29]: x=np.zeros((2,max(len(a),len(b))))
In [30]: for i,j in enumerate([a,b]): x[i][:len(j)]=j
In [31]: x
Out[31]:
array([[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
33., 34., 35., 36., 37., 38., 39.],
[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
22., 23., 24., 25., 26., 27., 28., 29., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0.]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.