gpt4 book ai didi

python-3.x - 在循环中附加到 numpy 数组

转载 作者:行者123 更新时间:2023-12-03 16:35:13 26 4
gpt4 key购买 nike

我真的希望不要错过一些之前已经澄清过的东西,但我在这里找不到任何东西。

任务看起来很简单,但我失败了。我想在 for 循环中连续将一个 numpy 数组附加到另​​一个数组:

step_n = 10
steps = np.empty([step_n,1])

for n in range(step_n):
step = np.random.choice([-1, 0, 1], size=(1,2))
#steps.append(step) -> if would be lists, I would do it like that
a = np.append(steps,step)
#something will be checked after each n

print(a)

输出应该是 <class 'numpy.ndarray'> 类型的 ofc看起来像:
[[-1.  0.]
[ 0. 0.]
[-1. -1.]
[ 1. -1.]
[ 1. 1.]
[ 0. -1.]
[-1. 1.]
[-1. 0.]
[ 0. -1.]
[ 1. 1.]]

但是,由于某些(最可能是显而易见的)原因,代码失败了。
有人可以给我一个提示吗?

最佳答案

import numpy as np

step_n = 10
steps = np.random.choice([-1, 0, 1], size=(1,2))
for n in range(step_n-1):
step = np.random.choice([-1, 0, 1], size=(1,2))
print(steps)
steps = np.append(steps, step, axis=0)
#something will be checked after each n

print(steps)

问题之一是您的步骤变量在 for 循环之外初始化 has a different size比里面的每一步。通过在 for 循环之外创建第一步,我改变了您初始化变量步骤的方式。这样,您的步骤变量已经具有匹配的大小。但是请注意,因此您需要在 for 循环中减少 1 次迭代。

此外,您希望更新每个 for 循环中的步骤变量,而不是在其中创建新变量“a”。在您的代码中,您只会得到 steps 数组(永远不会改变)和最后一步。

关于python-3.x - 在循环中附加到 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62046716/

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