使用参数创建3-D Numpy数组

时间:2014-09-03 01:03:35

标签: python numpy

所以我需要编写完成以下内容的代码:

  
    
      

编写一个Python代码,生成一个变量op_table,它是一个有三个的numpy数组       轴,i,j和k。定义三个数组:

             
        

xi的范围从0(包括)到9(包括),步长为1,

                 

yj在20个相等大小的步骤中形成10(包括)到11(包括)的范围,

                 

zk范围从5到106分为5个步骤(即共有6个条目),其中zk = 10zk-1。

      
             

然后创建满足:

的最终数组op_table              
        

op_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]

1 个答案:

答案 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/