gpt4 book ai didi

python - 转换一个numpy数组

转载 作者:太空狗 更新时间:2023-10-30 02:32:09 25 4
gpt4 key购买 nike

我有一个这种形式的 numpy 数组

[[-0.77947021  0.83822138]
[ 0.15563491 0.89537743]
[-0.0599077 -0.71777995]
[ 0.20759636 0.75893338]]

我想创建这种形式的 numpy 数组 [x1, x2, x1*x2]其中 [x1, x2]来自原始数组列表。

目前我正在使用 python 代码创建一个列表列表,然后将其转换为 numpy 数组。但我认为可能有更好的方法来做到这一点。

最佳答案

像这样:

In [22]: import numpy as np

In [23]: x = np.array([[-0.77947021, 0.83822138],
...: [ 0.15563491, 0.89537743],
...: [-0.0599077, -0.71777995],
...: [ 0.20759636, 0.75893338]])

In [24]: np.c_[x, x[:,0] * x[:,1]]
Out[24]:
array([[-0.77947021, 0.83822138, -0.6533686 ],
[ 0.15563491, 0.89537743, 0.13935199],
[-0.0599077 , -0.71777995, 0.04300055],
[ 0.20759636, 0.75893338, 0.15755181]])

这使用 numpy.c_ ,这是一个方便的函数,用于沿第二个维度连接各种数组。

您可以在 Numpy 的教程中找到有关连接数组的更多信息。 hstack(参见 Jaime 的回答)、vstackconcatenaterow_stackcolumn_stack 可能是您应该使用的“官方”功能。函数 r_c_ 是模拟一些 Matlab 功能的小技巧。它们有点难看,但可以让你写得更紧凑一些。

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

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