簡體   English   中英

Python-遮罩2D數組並使之成為稀疏數組

[英]Python - Masking a 2D array and making it a sparse array

我有以下代碼從張量積生成二維數組:

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 ...還有更好的方法嗎? 也許從一開始就以稀疏數組開始?

您可以使用它。

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

為了實現掃描二維數組,請使用嵌套映射。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM