gpt4 book ai didi

python - 使用 bool 数组索引 SciPy 稀疏矩阵

转载 作者:太空狗 更新时间:2023-10-29 18:29:57 24 4
gpt4 key购买 nike

NumPy 数组可以使用 bool 数组进行索引,以选择与 True 条目对应的行:

>>> X = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> rows = np.array([True,False,True])
>>> X[rows]
array([[1, 2, 3],
[7, 8, 9]])
>>> X[np.logical_not(rows)]
array([[4, 5, 6]])

但这对于 SciPy 稀疏矩阵似乎是不可能的;索引被视为数字,因此 False 选择第 0 行,True 选择第 1 行。如何获得类似 NumPy 的行为?

最佳答案

您可以使用 np.nonzero (或 ndarray.nonzero)在你的 bool 数组上获取相应的数字索引,然后使用它们来访问稀疏矩阵。由于与密集的 ndarray 相比,稀疏矩阵上的“花式索引”非常有限,因此您需要解压缩 nonzero 返回的行元组并指定要检索所有列使用 : 切片:

>>> rows.nonzero()
(array([0, 2]),)
>>> indices = rows.nonzero()[0]
>>> indices
array([0, 2])
>>> sparse[indices, :]
<2x100 sparse matrix of type '<type 'numpy.float64'>'
with 6 stored elements in LInked List format>

关于python - 使用 bool 数组索引 SciPy 稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408385/

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