首页 > 解决方案 > 如何使用numpy根据数组值从我的数据中获取特定值?

问题描述

我有一个数据数组,我在其中插入了一个值从 0 开始的列。所以现在我的数据包含所有浮点值。

经过一些处理后,我有一个数组 ARR,其中包含我的第一列中的值。使用这些 ARR 值(或位置),我想使用 Numpy 将剩余的列提取到一个新数组中。

import numpy as np
import io
data =io.StringIO("""
ID,1,2,3
5362,0.97,-0.40,-0.76
485,-0.65,0.53,0.62
582,0.04,0.99,0.76
99,0.77,0.53,0.39
75,-0.44,0.52,0.85
474,0.35,0.8,0.13
594,-0.29,0.03,0.74
597,0.96,-0.35,0.59
124,0.73,0.61,0.76
635,0.88,0.96,-0.98
7894,-0.04,0.04,0.52
1268,0.56,0.73,-0.37
38,0.46,0.62,0.73
88,0.02,0.16,0.098
887,0.46,0.65,-0.89
""")

data = np.genfromtxt(data, delimiter=',', skip_header=2, dtype=np.float64)
index = np.arange(data.shape[0]).reshape(-1, 1)
data = np.hstack([index, data])


ARR = [[1.],[2.],[4.],[6.],[7.],[9.]]

预期输出如:

我想要所有行值在ARR. 我也可以将其显示为整数值。我想要我的数据数组中这些位置的所有行。

485,-0.65,0.53,0.62
582,0.04,0.99,0.76
75,-0.44,0.52,0.85
594,-0.29,0.03,0.74
597,0.96,-0.35,0.59
635,0.88,0.96,-0.98

标签: pythonnumpy

解决方案


使用数据形成的方式,您可以轻松地执行以下操作:

for value in ARR:
    print(data[int(value[0])][1::])

希望能帮助到你!

编辑:添加 [1::] 对结果进行切片并删除索引位置。


推荐阅读