【发布时间】:2017-03-22 20:23:05
【问题描述】:
给定两个长度相同的numpy 数组,我需要从它们中删除那些相同的索引元素为零。例如,给定数组
a = [5 9 2 0 1 4 9 0 8 1]
b = [1 0 3 1 2 4 2 0 3 2]
我需要获得
a = [5 9 2 0 1 4 9 8 1]
b = [1 0 3 1 2 4 2 3 2]
即,只有在两个数组中 具有零值的元素被从两个数组中删除。我试过这种方法
import numpy as np
a = np.random.randint(0, 10, 10)
b = np.random.randint(0, 10, 10)
a_z_idx = [a != 0]
b_z_idx = [b != 0]
ab_z_idx = a_z_idx and b_z_idx
a = a[ab_z_idx]
b = b[ab_z_idx]
但这也会删除两个数组中的零元素,而不是只删除两个数组中都为零的元素。
我的实际数组有几百万个元素,所以我追求最有效的方法。
【问题讨论】:
标签: python arrays performance numpy