可惜的是,这两个问题的答案找出问题,但并没有给出一个结论来解决。 让我们看看代码。
Z = np.array([1.0, 1.0, 1.0, 1.0])
def func(TempLake, Z):
A = TempLake
B = Z
return A * B
Nlayers = Z.size
N = 3
TempLake = np.zeros((N+1, Nlayers))
kOUT = np.zeros(N + 1)
for i in xrange(N):
# store the i-th result of
# function "func" in i-th item in kOUT
kOUT[i] = func(TempLake[i], Z)
错误显示您设置KOUT的第i个项目(D型:INT)成阵列,在KOUT每个项目仅仅是一个INT项目,不能指向其他数据类型,你应该改变的声明改变kOUT的数据类型。 例如,如:
更改下面的语句:
kOUT = np.zeros(N + 1)
到:
kOUT = np.zeros(N + 1, dtype=object)
或:
kOUT = np.zeros((N + 1, N + 1))
所有代码:
import numpy as np
Z = np.array([1.0, 1.0, 1.0, 1.0])
def func(TempLake, Z):
A = TempLake
B = Z
return A * B
Nlayers = Z.size
N = 3
TempLake = np.zeros((N + 1, Nlayers))
kOUT = np.zeros(N + 1, dtype=object)
for i in xrange(N):
kOUT[i] = func(TempLake[i], Z)
希望它能帮助你。
我找到了信息也很神秘。 – SherylHohman
有关numpy的github(https://github.com/numpy/numpy/issues/6584)关于更改此消息的讨论以更好地描述创建的各种情况。下面的答案澄清了我的情况。 – SherylHohman
我想告诉我WHAT序列设置了什么元素。没有提到这是没有用的。 – Louis