我真的希望没有遗漏一些东西,之前已经澄清过,但我在这里找不到东西。
这个任务看起来很简单,但我失败了。我想在 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)
输出应该是 ofc 类型<class 'numpy.ndarray'>
看起来像:
[[-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)
问题之一是你的steps在 for 循环之外初始化的变量有不同的尺寸 https://numpy.org/doc/stable/reference/generated/numpy.append.html比里面的每一步。我改变了你初始化变量的方式steps,通过在 for 循环之外创建第一步。这样,您的steps变量已经具有匹配的大小。但请注意,因此您需要减少 for 循环中的 1 次迭代。
另外,您想更新steps每个 for 循环中的变量,而不是创建新变量“a“在它里面。在你的代码中,你最终会得到steps数组(永远不会改变)并且只有最后一步。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)