gpt4 book ai didi

python - 迭代 NumPy 数组中的行,如何正确处理这种 1D 与 2D 情况,我希望将 1D 视为整行进行索引?

转载 作者:行者123 更新时间:2023-12-01 06:32:12 25 4
gpt4 key购买 nike

我有一系列 csv 文件,我正在使用 NumPy 的 genfromtxt 函数将它们转换为数组。它们各自具有以下格式:

ColA, ColB, ColC
-2, 10, 10
-1, 10, 10
0, 10, 10
1, 10, 10
2, 10, 10

在上述 csv 的情况下,使用 genfromtxt(data.csv, delimeter=',',skip_header=1) 将生成一个形状为 (5 ,3)。然后我可以迭代每一行,即:

data_array = np.genfromtxt(data.csv, delimeter=',', skip_header=1)

for row in data_array:
some_function(row[0], row[1], row[2])

循环中的函数期望并需要三个数字。当 csv 仅包含一行数据时,这种情况就会崩溃,即:

ColA, ColB, ColC,
0, -4, 10,

在这种情况下,for row in data_array 将被解释为单独查看 (1, 3) 形数组中的每个数字,因此我无法对其运行该函数。我拥有的数据是一系列 csv 文件,可能有也可能没有多于一行的数据。处理此问题的正确方法是什么,以便无论输入数组如何,some_function(x, y, z)始终可以完成?我可以使用 if 语句来检查数组是否是一维的,但似乎有更好的方法来解决这个问题。

最佳答案

您可以使用带有通配符(-1)的np.reshape来强制数据成为二维数组:

data_array = np.genfromtxt("data.csv", delimiter=',', skip_header=1).reshape(-1,3)

关于python - 迭代 NumPy 数组中的行,如何正确处理这种 1D 与 2D 情况,我希望将 1D 视为整行进行索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59845159/

25 4 0
文章推荐: java - Java 中的概率为 75%
文章推荐: jquery - 如何用jquery替换中除
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com