python :python3.2
cvxopt:1.1.5
NumPy :1.6.1

我读过http://abel.ee.ucla.edu/cvxopt/examples/tutorial/numpy.html

import cvxopt
import numpy as np
cvxopt.matrix(np.array([[7, 8, 9], [10, 11, 12]]))

我有
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: non-numeric element in list

通过 np.array(cvxopt.matrix([[7, 8, 9], [10, 11, 12]])) ,我得到了
array([[b'\x07', b'\n'],
   [b'\x08', b'\x0b'],
   [b'\t', b'\x0c']],
  dtype='|S8')

最佳答案

cvxopt == 1.1.9numpy == 1.13.1 开始:

import cvxopt
import numpy as np

a = cvxopt.matrix(np.array([[7, 8, 9], [10, 11, 12]]))
print(a)

产生输出
[  7   8   9]
[ 10  11  12]
a 是一个
<2x3 matrix, tc='i'>

结果矩阵具有整数类型 ( the 'i' ),因为起始 numpy 数组包含整数。以 double 开头的结果是 'd' 类型。

关于cvxopt.matrix 和 numpy.array 之间的 python3 转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12551009/

10-11 12:08