gpt4 book ai didi

python - 访问数组列表的元素

转载 作者:行者123 更新时间:2023-12-05 07:07:58 27 4
gpt4 key购买 nike

我有一个由数组组成的数据列表。我希望能够访问这些数组的每个元素。但是,当我尝试访问其中一个列表的每个元素时,我反而得到了一个完整的列表,即

>>> vec_data[0]
'[array([129.1203, 65.5152, -15.7962]), array([ -75.8793, -27.2767, -136.3468]), array([ 98.54 , -110.7603, 187.9171]), array([ 83.9628, 126.839 , -61.4756]), array([ -63.1397, -216.348 , -165.1392]), array([ 32.8174, 45.1573, 146.6547]), array([65.2439, 82.8289, 13.3427]), array([ -8.481 , -38.3387, -138.1786]), array([-223.8824, 86.1375, -2.5446]), array([211.8308, 51.894 , 89.5078]), array([ 21.4793, -177.2219, -0.573 ])]\n'

然后我尝试了 vec_data[0][0] 希望得到 [129.1203, 65.5152, -15.7962] 返回但是却得到了:

>>> vec_data[0][0]
'['

任何人都可以提供任何有关如何从该列表中取回我想要的输出的见解吗?

我附上了下面一小段数据来帮助解决这个问题。

['[array([129.1203,  65.5152, -15.7962]), array([ 83.094 , 135.5689,  57.7153]), array([  97.337 , -158.2453,   26.0811]), array([  31.3163,  121.7492, -100.4891]), array([ 60.797 ,  20.4243, -45.3821]), array([  -1.9805, -145.0236,  -57.6177]), array([116.4612,  18.3822, -99.8011]), array([38.402 , 13.7894, 85.094 ]), array([-321.057 ,  147.0128,  173.035 ]), array([  99.6488,  -74.9626, -110.7028]), array([ 134.3792, -110.4547,   -8.8729])]\n', '[array([ -67.876  ,  -28.46764, -118.16426]), array([ 58.368  , 107.64964,  90.12756]), array([ 102.6007, -165.1867,   26.1187]), array([  39.58716,  124.4238 , -106.68995]), array([ 58.19804,  18.7423 , -40.15905]), array([  -4.9479, -151.5177,  -56.3511]), array([ 99.946 ,  27.8355, -89.1489]), array([51.115, -3.302, 80.843]), array([-326.252 ,  170.7748,  168.0119]), array([ 120.9826,  -91.66  , -116.6699]), array([114.7974, -82.5404,   2.0438])]\n', '[array([ -28.196  ,  -14.69983, -149.5836 ]), array([ 54.399  , 108.75513, 106.2178 ]), array([  93.0723, -146.1217,   27.1268]), array([  15.1398,  104.9325, -128.3365]), array([ 89.2691,   2.3471, -21.0604]), array([ -15.2423, -155.4835,  -28.2395]), array([ 86.8051, -18.2533, -74.2126]), array([73.194 , 60.0037, 67.0507]), array([-314.68  ,  170.6532,  145.9454]), array([  69.4455,  -98.9357, -135.0111]), array([147.9465, -88.8198,  36.5976]

编辑:

使用 revliscano 建议的方法:

import re
import json


string = vec_data[0]
r = re.sub('array\((\[.+?\])\)', lambda x: x.groups()[0], string)
r = r.replace('\n', '')
list_ = json.loads(r)

给我 vec_data[0] 所需的输出,但是,我想让它遍历所有 vec_data - 有什么建议吗?

最佳答案

如果您有办法不将此数据作为字符串放入您的程序中,那将是理想的,但我相信以下方法应该可以将您的数据转换为更好的格式。

import numpy as np
array = np.array
vec_data = eval(vec_data)

在使用您的示例代码执行此操作后,我得到了一个数组列表。

如果您希望它以列表格式代替,您可以将 array = np.array 替换为 array = list,但根据输入数据的外观,它可能最初是一个 numpy 数组。

关于python - 访问数组列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61988701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com