簡體   English   中英

使用 for 循環將向量轉換為 Python 中的矩陣

[英]Casting a vector into a matrix in Python using for-loops

我有一個使用 linspace 創建的長度為 50 的列表:

m=np.linspace(0,10,50)

我可以使用 reshape 將其重新轉換為 10 X 5 矩陣

X=np.reshape(m,(10,5))

但是,如果我想使用 for 循環來做同樣的事情,我會收到一個錯誤:

z=np.zeros((10,5),dtype=float)
s=0
for i in range(0,10):
    for j in range(0,5):
        m[i][j]=z[s]
        s=s+1

這是錯誤:

'numpy.float64' 對象不支持項目分配

為什么不支持項目分配?

謝謝

z將在重塑后從m存儲您的項目:

m=np.linspace(0,10,50)

z=np.zeros((10,5),dtype=float)
for i in range(10):
    for j in range(5):
        z[i][j]=m[i * 5 + j]  # compute the index from m base on the current row and column


print(z)

這是一個愚蠢的錯誤:

是的,我弄錯了尺寸; 這就是我重寫它的方式:

m=np.linspace(0,10,50)
z=np.zeros((10,5),dtype=float)
s=0
for i in range(0,10):
    for j in range(0,5):
        z[i][j]=m[s]
        s=s+1

暫無
暫無

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

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