python - 如何在python中对两个不同格式的向量进行运算

标签 python numpy scipy sparse-matrix

我的向量之一的格式是 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/

相关文章:

python - 类型错误 : expected bytes, 找到描述符

Python3 将数组从 (x,y,3) 减少到 (x,y,1) (RGB 到灰度)

python - 分段仿射变换+扭曲输出看起来很奇怪

python - Scipy -- 3d griddata -- 为什么有必要将 griddata xi 参数转换为元组?

python - Scipy/Numpy/scikits - 基于两个数组计算精度/召回分数

用于估计实数方非负矩阵的 Perron-Frobenius 特征值的 Python 包

python - 使用 Python 中的 Wordnet 同义词集处理意大利语

python - 覆盖以前提取的文件而不是创建新文件

python - 如何使用 cmd/Python 关闭 Internet 选项卡?

python - 在 Python 中重新格式化表