相关疑难解决方法(0)

将numpy.digitize扩展为多维数据

我有一组大型数组(每个大约600万个元素),我想基本上执行np.digitize但是多个轴.我正在寻找有关如何有效地执行此操作以及如何存储结果的一些建议.

我需要数组A的所有索引(或所有值或掩码),其中数组B的值在一个范围内,而数组C的值在另一个范围内,D在另一个范围内.我想要值,索引或掩码,以便我可以做一些关于每个bin中A数组值的尚未确定的统计信息.我还需要每个bin中的元素数量,但len()可以做到这一点.

这是我编写的一个看似合理的例子:

import itertools
import numpy as np

A = np.random.random_sample(1e4)
B = (np.random.random_sample(1e4) + 10)*20
C = (np.random.random_sample(1e4) + 20)*40
D = (np.random.random_sample(1e4) + 80)*80

# make the edges of the bins
Bbins = np.linspace(B.min(), B.max(), 10)
Cbins = np.linspace(C.min(), C.max(), 12) # note different number
Dbins = np.linspace(D.min(), D.max(), 24) # note different number

B_Bidx = np.digitize(B, Bbins)
C_Cidx = np.digitize(C, Cbins)
D_Didx = np.digitize(D, Dbins)

a_bins = []
for bb, cc, dd in itertools.product(np.unique(B_Bidx), …
Run Code Online (Sandbox Code Playgroud)

python numpy

9
推荐指数
1
解决办法
2901
查看次数

标签 统计

numpy ×1

python ×1