python - 使用索引和偏移量分割 ndarray - Python

标签 python arrays numpy

我有两个 ndarray 对象 ab

我想使用数组 a 中提供的索引拆分 b,但不是以传统方式(使用numpy.split)。

具体来说,我想创建从数组 b 的索引开始的多个子数组,将它们称为 b[i] 并以 b[i] + X,其中 X 是我选择的数字。

示例:

a = [1,4,9]

b = [30, 45, 10, 20, 5, 32, 104, 39, 23, 450, 2, 102, 50]

对于 X=2,我的 split() 函数将产生以下结果:

[[45,10,20],[5,32,104],[450,2,102]]

我在 numpy 中环顾四周,但还没有找到一种方法来做到这一点。

最佳答案

只需使用切片,如果使用 Python 列表而不是 NumPy 数组,效果是一样的:

a = np.array([1, 4, 9])
b = np.array([30, 45, 10, 20, 5, 32, 104, 39, 23, 450, 2, 102, 50])

X = 3 # Add one extra here

print(np.array([b[i:i+X] for i in a]))

这将打印:

[[ 45  10  20]
 [  5  32 104]
 [450   2 102]]

关于python - 使用索引和偏移量分割 ndarray - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44144675/

相关文章:

Python unicode 写入文件在命令行中崩溃,但在 IDE 中不会崩溃

python - python 中的 str(len(x))

Javascript 数组操作 - 是否有更具声明性的方法?

python - 使用Python进行三重积分的数值计算

c++ - Python对象到C++指针问题

c++ - C++对象数组中的奇怪数字

php - 从 MySQL 数据库输出数组...如何在 PHP 中删除方括号和双引号?

python - 在另一个数组中查找一个数组的匹配索引

numpy - 如何将 numpy 直方图反转回强度

python - python中的枚举