python - 将 NumPy 矩阵复制到 NumPy 数组中

标签 python numpy

我正在使用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/

相关文章:

python - 如何打印与最小残差关联的值 - Python

python - 为什么我没有看到 Numpy 的 DeprecationWarning?

python - numpy 切片和索引不同的结果

python - 提高读取二进制文件的速度

python - 未正确附加矩阵

python-docx 为每个段落设置不同的样式

python - 顺序调用多个子进程

python - 使用 bs4 在类中选择一个标签

python - Pandas 风格背景渐变行和列

python - QTreeWidget 镜像 python 字典