我有以下代码从张量积生成二维数组:
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))
我想:
丢弃不属于1
或0.5
的任何元素。
为此,我尝试了a[a>0.25]
,但随后它使数组变为1-D。...
我正计划使用此方法获得非常大的数组,并且它们将有很多零。因此,我想将它们设置为sparse
。
我知道我可以做到
from scipy.sparse import csr_matrix
p = csr_matrix(a)
但这需要我已经创建一个大型a
...还有更好的方法吗?也许从一开始就以稀疏数组开始?
答案 0 :(得分:0)