繁体   English   中英

numpy将一维数组索引为二维

[英]Numpy index a 1D array to 2D

下面是具有一些简单示例数据所需功能的代码。 基本上,我使用np.digitize对数据进行装仓 ,然后根据此问题计算列索引。 已知bin_idx永远不会减少以防万一。 如何在没有显式循环的情况下建立二维数组的索引? 一种复杂的情况是每行/ bin中值的数量会变化。 稍后,我将对每个bin /行进行不同的统计,最大只是一个示例。

import numpy as np

x = np.arange(10)
bin_idx = np.array([0, 0, 0, 1, 2, 3, 3, 4, 4, 4])
col_idx = np.array([0, 1, 2, 0, 0, 0, 1, 0, 1, 2])

binned = np.ones((bin_idx[-1]+1, np.max(col_idx)+1)) * np.nan
for i in range(len(x)):
    binned[bin_idx[i], col_idx[i]] = x[i]
print(binned)
row_max = np.nanmax(binned, 1)
print(row_max)

numpy索引允许您将序列作为索引传递。 还请检查下面用于创建binned数组的Numpy 完整方法。

binned = np.full((bin_idx[-1]+1, np.max(col_idx)+1), np.nan)
binned[bin_idx, col_idx] = x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM