我试图创建一个空的3x2矩阵,然后将每列替换为随机生成的向量
因此,我尝试运行以下代码:
import numpy as np
A = np.empty(shape=(3,2))
x1 = np.random.rand(3,1)
x2 = np.random.rand(3,1)
A[:,1] = x1
A[:,2] = x2
但是,当我尝试运行代码时,收到以下错误消息:
A[:,1] = x1
ValueError: could not broadcast input array from shape (3,1) into shape (3)
我如何修复错误
多谢各位
A
的大小为3 X 2
,即它有3
行和2
列A[:,1]
表示A
的所有行和第二列。数组在python中索引为0A[:,1]
是一个列向量,因此可以将大小为3的任何向量指定给它np.random.rand(3,1)
返回numpy数组(矩阵)或大小3 X 1
。但是你想要的是一个向量,即np.random.rand(3)
这里有几件事不对。首先,您尝试将更高维数组分配给切片:
另一方面,您错误地建立了索引,numpy(以及更一般的python)中的索引从位置
0
开始。因此,考虑到这些方面,您可以指定为:或者请注意
np.random.rand
可以生成多维数组:相关问题 更多 >
编程相关推荐