Python numpy数组-初始化第一个元素?
我在Python numpy数组-初始化第一个元素?,python,numpy,Python,Numpy,我在alldiff中得到了1001个diff元素,而不是1000个。在没有自动创建第一个元素的情况下,如何初始化alldiff?不是将alldiff创建为空数组,而是在第一次有diff中的数据时使用以下方法创建它: diffs = np.empty([2, 3]) # 2D array 2x3. alldiffs = np.empty([2, 3, 1]) # 3D array 2x3xN. This creates 1st element. for x in range(1000):
alldiff
中得到了1001个diff
元素,而不是1000个。在没有自动创建第一个元素的情况下,如何初始化alldiff
?不是将alldiff
创建为空数组,而是在第一次有diff
中的数据时使用以下方法创建它:
diffs = np.empty([2, 3]) # 2D array 2x3.
alldiffs = np.empty([2, 3, 1]) # 3D array 2x3xN. This creates 1st element.
for x in range(1000):
diffs = new_diffs(x)
alldiffs = np.dstack((alldiffs, diffs))
发布预期的输出,这会很有帮助,因为我在循环中有
np.dstack
,这个解决方案需要循环中的一个条件,这似乎不是一个好的解决方案。@Danijel我在问题的任何地方都没有看到循环。但无论如何,如果你找到了比我更好的方法,一切都很好。老实说,我没有找到方法。我仍然带着第一个元素,这是一个耻辱。让我编辑这个问题以包含一个循环。
alldiffs = np.expand_dims(diffs, axis=2)
alldiffs = np.dstack((alldiffs, diffs))
alldiffs = np.dstack((alldiffs, diffs))
alldiffs.shape # (2, 3, 3)