[英]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.