gpt4 book ai didi

python - 将列表转换为 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:38 24 4
gpt4 key购买 nike

此代码设置为读取两列数据,然后将第一列打印到第一个 numpy 数组中,然后将第二列打印到第二个 numpy 数组中。

def read2coldata(filename):

import numpy
b = []
f = open(filename,"r")
lines = f.readlines()
f.close()
for line in lines:
a = line.split()
for i in a:
b.append(i)
return (numpy.array(b[::2]),numpy.array(b[1::2]))

但是这给出了:

(array(['1.5', '8', '16', '17'], dtype='|S3'), array(['4', '5', '6', '6.2'], dtype='|S3'))

我如何摆脱 dtype="|S3" 部分以使其离开:

(array(["1.5","8","16","17"], array(["4","5","6","6.2"])

最佳答案

您不想“消失”的 dtype="S3"。当您打印一个 numpy 数组时,它会为您提供其中数据的类型。它不是数据的一部分,而是有关程序如何存储和理解数据的信息。

在您的特定示例中,您读取了数字,因此您可能希望之后在计算或其他任何事情中使用它们,在这种情况下,您希望数据被理解为数字(在您的情况下为 float )。

目前它们存储为字符串,这就是为什么您会看到 dtype="S3" 的原因,它本质上表示大小为 3 或更小的字符串类型。 (IIRC)

我建议您替代函数:numpy.genfromtxt 是一个将数据从 txt 文件加载到 numpy 数组的函数。

文档非常好,如果您花 20 分钟了解参数,您会发现它非常有用。

array1 = numpy.genfromtxt('path_to_my_file.txt', usecols=0)
array2 = numpy.genfromtxt('path_to_my_file.txt', usecols=1)

这应该可以帮助您入门。

关于python - 将列表转换为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773687/

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