簡體   English   中英

整形地將數組整形為1D

[英]Numpy reshape array of arrays to 1D

如何使x變成一維數組? 我發現創建這樣的x很方便,

x=np.array([[0,-1,0]*12,[-1,0,0]*4])
print x
print len(x)

退貨

array([ [0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0],
       [-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0]], dtype=object)

2

我也試過像這樣,但是長度仍然是2

y=((0,1,0)*12,(-1,0,0)*4)
print y

退貨

((0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0), (-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0))

我試過使用numpy.reshape(在x和y上):

np.reshape(x,48)

但是我得到這個錯誤:

ValueError: total size of new array must be unchanged

像我一樣聲明x或y時是否可以重塑形狀?

創建數組時,請使用+連接列表,而不要將其包裝在另一個列表中:

x = np.array([0,-1,0]*12 + [-1,0,0]*4)

我認為您正在尋找一個長度為48的一維numpy數組。

    import numpy as np
    x=np.array([[0,-1,0]*12])
    x= np.append(x,[-1,0,0]*4)
    print (x)
    print (len(x))

這樣產生,

[ 0 -1  0  0 -1  0  0 -1  0  0 -1  0  0 -1  0  0 -1  0  0 -1  0  0 -1  0  0
 -1  0  0 -1  0  0 -1  0  0 -1  0 -1  0  0 -1  0  0 -1  0  0 -1  0  0]
48

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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