gpt4 book ai didi

python - numpy:如何将函数应用于数组的每一行

转载 作者:行者123 更新时间:2023-12-01 09:28:03 24 4
gpt4 key购买 nike

我有一个名为 my_data 的二维 numpy 数组。每一行代表一个数据点的信息,每一列代表该数据点的不同属性。

我有一个名为 processRow 的函数。它接收一行,并对信息进行一些处理并返回修改后的行。函数返回的行长度比函数接收的行长(该函数基本上将一些分类数据扩展为one-hot向量)

如何拥有一个 numpy 数组,其中每一行都已由该函数处理?

我试过了

answer = np.array([])
for row in my_data:
answer = np.append(answer,processRow(row))

但最后,答案只是一个很长的行而不是二维网格

最佳答案

您可以使用 vstack,因为 row 有不同的形状来回答。您还需要明确答案的形式:

In [11]: my_data = np.array([[1, 2], [3, 4]])
...: process_row = lambda x: x # do nothing

In [12]: answer = np.empty((0, 2), dtype='int64')
...: for row in my_data:
...: answer = np.vstack([answer, process_row(row)])
...:

In [13]: answer
Out[13]:
array([[ 1, 2],
[ 3, 4]])

但是,您最好进行列表理解,然后将其传递给 numpy:

In [21]: np.array([process_row(row) for row in my_data])
Out[21]:
array([[1, 2],
[3, 4]])

关于python - numpy:如何将函数应用于数组的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204698/

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