将numpy矩阵转换为Python数组。

3
有没有比这个更好的方法将numpy矩阵转换为python数组?
>>> import numpy
>>> import array
>>> b = numpy.matrix("1.0 2.0 3.0; 4.0 5.0 6.0", dtype="float16")
>>> print(b)
[[ 1.  2.  3.]
 [ 4.  5.  6.]]
>>> a = array.array("f")
>>> a.fromlist((b.flatten().tolist())[0])
>>> print(a)
array('f', [1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
2个回答

2
你可以将其转换为 NumPy 数组,并使用 .ravel().flatten() 生成其扁平化版本。这也可以通过直接使用函数 np.ravel 实现,因为它在背后执行了这两个操作。最后,对其使用 array.array() 函数,如下所示-
a = array.array('f',np.ravel(b))

样例运行 -

In [107]: b
Out[107]: 
matrix([[ 1.,  2.,  3.],
        [ 4.,  5.,  6.]], dtype=float16)

In [108]: array.array('f',np.ravel(b))
Out[108]: array('f', [1.0, 2.0, 3.0, 4.0, 5.0, 6.0])

1

here is an example :

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.tolist()
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接