繁体   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