簡體   English   中英

從不同長度的數組創建ndarray

[英]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 ),然后用ab替換行。 不確定是否比您的方式更好

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM