【发布时间】:2020-11-22 10:04:23
【问题描述】:
代码:
import numpy as np
def f(a):
return np.array([0, 1])
N_x, N_y = 4, 3
U = V = np.zeros((N_x, N_y))
for n_y in range(N_y):
for n_x in range(N_x):
U[n_x, n_y], V[n_x, n_y] = f(0)
print(U, V)
这给出了意外的输出:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]] [[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
但是如果我使用
U = np.zeros((N_x, N_y))
V = np.zeros((N_x, N_y))
我得到以下预期结果,而不是 U = V = np.zeros((N_x, N_y))。
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]] [[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
问题:这里出了什么问题?
【问题讨论】:
-
在第一种情况下,您只有一个具有两个名称的数组,
U和V。在第二种情况下,您有两个不同的数组。 -
在最新答案中查看我的评论。