所以我需要编写完成以下内容的代码:
编写一个Python代码,生成一个变量op_table,它是一个有三个的numpy数组 轴,i,j和k。定义三个数组:
xi的范围从0(包括)到9(包括),步长为1,
yj在20个相等大小的步骤中形成10(包括)到11(包括)的范围,
zk范围从5到106分为5个步骤(即共有6个条目),其中zk = 10zk-1。
然后创建满足:
的最终数组op_tableop_table [I,J,K] = SIN(ⅹⅰ)⋅yj+ ZK
我的问题在于如何初始设定值。我只看过以np.array([1,2,3,4])或np.arrange(10)等方式创建的numpy数组。另外,这个设置如何?第一列是x轴,第二列是y轴,依此类推?
import numpy as np
import math
xi = np.linspace(0,9, num=10)
yj = np.linspace(10,11,20, endpoint=True)
zk = [10, 10**2, 10**3, 10**4, 10**5, 10**6]
op_table = np.random.rand(10,20,6)
for i in range (0,10):
for j in range (0,20):
for k in range (0,6):
op_table[i,j,k] = math.sin(xi[i]) * yj[j] + zk[k]
答案 0 :(得分:0)
不要个人相信吃饭的答案,但看起来你错误地解释了这个问题。除了解决第二个等式外,问题实际上并不需要生成任何矩阵。 Numpy碰巧有一个名为linspace
的非常有用的功能,几乎完全可以做到这一点。
import numpy as np
xi = np.linspace(0, 10)
yj = np.linspace(10, 11, 20)
除此之外,这似乎是一个数学问题,这应该可以让你获得80%的解决方案。如果您需要数学方面的帮助,那么还有另一个堆栈交换。
更多np.linspace文档:http://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html 数学堆栈交换:https://math.stackexchange.com/