【发布时间】:2021-04-21 21:56:37
【问题描述】:
我正在尝试基于索引创建一个新数组,该索引是每行中的第一个元素。 我觉得我在这里遗漏了一些非常简单的东西。
数组看起来像这样,行中的第一个数字是索引。
[[ 1 0 1 2 3 4]
[ 1 5 6 7 8 9]
[ 2 10 11 12 13 14]
[ 2 15 16 17 18 19]
[ 4 20 21 22 23 24]]
我想要的结果是这样的:
数组 1:
range 1=
[[ 1 0 1 2 3 4]
[ 1 5 6 7 8 9]]
数组 2:
range2 =
[[ 2 10 11 12 13 14]
[ 2 15 16 17 18 19]]
数组 3:
range 3=
[[ 4 20 21 22 23 24]]
这是我目前拥有的代码,但我有 N 个可能的索引号,我显然无法为所有这些索引号创建一个 if 语句。我打算使用一个列表,然后将该列表转换为一个 numpy 数组。在使用 hstack 之前我也看过压缩它们,但我也无法让它工作。
import numpy as np
data = np.arange(25).reshape(5,5)
indexList = np.array(([[1,1,2,2,4]]))
indexList = np.transpose(indexList)
array = np.hstack((indexList, data))
range1 = []
range2 = []
range3 = []
for row in array:
if row[0] == 1:
range1.append(row)
if row[0] == 2:
range2.append(row)
if row[0] == 3:
range3.append(row)
【问题讨论】: