gpt4 book ai didi

python - 将 numpy 矩阵转换为一维 numpy 数组

转载 作者:行者123 更新时间:2023-11-30 23:14:49 25 4
gpt4 key购买 nike

我有一维上的 csr_matrix 之和,它返回一个一维向量。默认情况下,其类型为 numpy.matrix,形状为 (1, N)。但是,我想用形状为 (N,) 的 numpy.array 来表示。作品如下:

>>> import numpy as np; import scipy.sparse as sparse
>>> a = sparse.csr_matrix([[0,1,0,0],[1,0,0,0],[0,1,2,0]])
>>> a
Out[15]:
<3x4 sparse matrix of type '<class 'numpy.int64'>'
with 4 stored elements in Compressed Sparse Row format>
>>> a.todense()
Out[16]:
matrix([[0, 1, 0, 0],
[1, 0, 0, 0],
[0, 1, 2, 0]], dtype=int64)
>>> a.sum(axis=0)
Out[17]: matrix([[1, 2, 2, 0]], dtype=int64)
>>> np.array(a.sum(axis=0)).ravel()
Out[18]: array([1, 2, 2, 0], dtype=int64)

但是,对于从 numpy 矩阵到 numpy 数组的转换,最后一步似乎有点矫枉过正。有没有我缺少的功能可以为我做到这一点?它将通过以下单元测试。

def test_conversion(self):
a = sparse.csr_matrix([[0,1,0,0],[1,0,0,0],[0,1,2,0]])
r = a.sum(axis=0)
e = np.array([1, 2, 2, 0])
np.testing.assert_array_equal(r, e)

最佳答案

类型numpy.matrix已经是numpy.ndarray的子类,因此不需要进行转换:

>>> np.ravel(a.sum(axis=0))
array([1, 2, 2, 0])

关于python - 将 numpy 矩阵转换为一维 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28605101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com