Nik*_*aij 6 python-3.x numpy-ndarray
我真的希望不要错过一些之前已经澄清过的东西,但我在这里找不到任何东西。
任务看起来很简单,但我失败了。我想在 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)
Run Code Online (Sandbox Code Playgroud)
输出应为 ofc 类型<class 'numpy.ndarray'>,如下所示:
[[-1. 0.]
[ 0. 0.]
[-1. -1.]
[ 1. -1.]
[ 1. 1.]
[ 0. -1.]
[-1. 1.]
[-1. 0.]
[ 0. -1.]
[ 1. 1.]]
Run Code Online (Sandbox Code Playgroud)
但是,由于某些(最可能是显而易见的)原因,代码失败了。有人可以给我一个提示吗?
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)
Run Code Online (Sandbox Code Playgroud)
问题之一是在 for 循环外部初始化的步骤变量的大小与内部每个步骤的大小不同。我改变了你初始化变量steps 的方式,通过在 for 循环之外创建你的第一步。这样,您的步骤变量已经具有匹配的大小。但是请注意,因此您需要在 for 循环中减少 1 次迭代。
此外,您希望更新每个 for 循环中的steps变量,而不是在其中创建新变量“ a ”。在您的代码中,您只会得到steps数组(永远不会改变)和最后一步。
| 归档时间: |
|
| 查看次数: |
15958 次 |
| 最近记录: |