Python-遮罩2D数组并使之成为稀疏数组

时间:2019-01-11 11:47:01

标签: python arrays

我有以下代码从张量积生成二维数组:

import numpy as np

m = np.array([[1. , 0.5, 0. ], [0.5, 1. , 0.5], [0. , 0.5, 1. ]])
a = np.tensordot(m, m, axes=0)
a = a.transpose((0, 2, 1, 3)).reshape((9, 9))

我想:

  • 丢弃不属于10.5的任何元素。
    为此,我尝试了a[a>0.25],但随后它使数组变为1-D。...

  • 我正计划使用此方法获得非常大的数组,并且它们将有很多零。因此,我想将它们设置为sparse
    我知道我可以做到

from scipy.sparse import csr_matrix
p = csr_matrix(a)

但这需要我已经创建一个大型a ...还有更好的方法吗?也许从一开始就以稀疏数组开始?

1 个答案:

答案 0 :(得分:0)

您可以使用它。

http://book.pythontips.com/en/latest/map_filter.html

为了实现扫描二维数组,请为此使用嵌套映射。