我的向量之一的格式是 scipy.sparse.csr.csr_matrix,另一个是 numpy.ndarray。我有一个实验代码如下:
import numpy as np
from scipy.sparse import csr_matrix
x = np.arange(5)+1
y = [1, 0, 0, 1, 2]
y = csr_matrix(y)
print type(x)
print type(y)
z = np.true_divide(y,x)
print z.shape
我得到 z.shape = (5L,) 但不知道它意味着什么。如果我打印 z 它告诉我它是一个包含 3 个元素的行向量。 如何打印数值结果,例如来自 z 的 1*5 向量?我是 Python 和这些数学包的新手,只是想了解一些有关稀疏矩阵运算的知识。我的问题是如何正确有效地执行这样的操作,因为我想有一种方法不需要每次都将稀疏表示恢复为密集表示。
谢谢!
最佳答案
你可以这样做:
import numpy as np
from scipy.sparse import csr_matrix
x = np.arange(5)+1
y = [1, 0, 0, 1, 2]
y = csr_matrix(y)
x2 = 1.0 / np.matrix(x)
z = y.multiply(x2)
结果:
>>> z
matrix([[ 1. , 0. , 0. , 0.25, 0.4 ]])
关于python - 如何在python中对两个不同格式的向量进行运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661101/