python - TypeError:创建具有特定值的矩阵时,“numpy.float64”对象不可调用
问题描述
我收到以下代码的 TypeError: 'numpy.float64' object is not callable 错误:
M = 10
N = 2
vol = np.random.standard_normal((M+1,2))
rho = np.random.standard_normal((M+1,1))
gamma = np.array([0.1,0.2])
cho_matrix = np.zeros((M+1, N, N), dtype=np.float)
for t in range(1, M + 1):
for i in range(0, N):
for j in range(0, N):
if j == i:
cho_matrix[t,i,j] = vol[t,i]
else:
cho_matrix[t,i,j]= vol[t,i] * vol[t,j] * ((1 - gamma[i]**2)(1-gamma[j]**2))**(-1/2) * rho[t]
print(cho_matrix)
错误是:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-137-ed6ff4869285> in <module>()
11 cho_matrix[t,i,j] = vol[t,i]
12 else:
---> 13 cho_matrix[t,i,j]= vol[t,i] * vol[t,j] * ((1 - gamma[i]**2)(1-gamma[j]**2))**(-1/2) * rho[t]
14
15 print(cho_matrix)
TypeError: 'numpy.float64' object is not callable
在这段代码中,我首先尝试使用,N = 2
但我需要扩展到更大的N
. 谁能帮我解决代码问题?
解决方案
这一点是问题:
(1 - gamma[i]**2)(1-gamma[j]**2)
您可能想要在这两个表达式之间添加一个乘号。
在常规数学符号中,我们可以编写(a)(b)
并理解这意味着将 a 和 b 相乘,但在 Python 中您必须编写(a) * (b)
.
推荐阅读
- python - 我可以将旧 Python 3.6.3 中的软件包复制并粘贴到新安装的 Python 3.7.4 的 /Lib/site-packages 目录中吗?
- flutter - 如何在 Flutter Markdown 中定义图像的高度和宽度?
- android - 如何在firestore中更改Hashmap中的值?
- mapbox - mapbox 支持的国家地址列表
- javascript - 如何在 React 中显示来自 django-rest-framework 的错误消息
- javascript - 如何在 JavaScript 中将同步函数转换为异步函数
- python - 如何在 Tkinter Text 小部件中突出显示单词或字母?
- swift - 循环添加到 ContainerViews
- python-3.x - 如何强制 pip 直接从 Internet 而不是本地缓存安装包?
- python - 将代理与 Tweepy 一起使用