我正在使用cvxpy
来解决优化问题。我想将输出(矩阵)存储到 ndarray 中。
这是简化的测试用例。 a
表示从 cvxpy
返回的值。
import numpy as np
z = np.zeros((3,7))
a = np.matrix("[1; 2; 3]")
z[0, 0] = a[0]
z[1, 0] = a[1]
z[2, 0] = a[2]
我想用更好的东西替换最后三行,但我尝试的一切都会导致错误。例如,
>>> z[:, 0] = a
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not broadcast input array from shape (3,1) into shape (3)
>>> np.copyto(z[:, 0], a)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not broadcast input array from shape (3,1) into shape (3)
如果能得到一点帮助,我将不胜感激。谢谢。
最佳答案
一种简单的方法是使用列索引列表来索引 z
,然后简单地在那里分配 NumPy 矩阵 a
-
z[:,[0]] = a
另一种方法是使用矩阵a
的转置,这将是一个行向量,分配给z
中第一列的切片版本 -
z[:,0] = a.T
关于python - 将 NumPy 矩阵复制到 NumPy 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043851/