繁体   English   中英

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

[英]Creating 3-D Numpy array with parameters

因此,我需要编写完成以下任务的代码:

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

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

yj以20个相等大小的步长在10(包括)到11(包括)的范围内变化,

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

然后创建满足以下条件的最终数组op_table:

op_table [i,j,k] = sin(xi)⋅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]

不要个人相信用勺子喂食的答案,但是看来您误解了问题。 该问题实际上不需要您生成任何矩阵,除非通过求解第二个方程即可。 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/genic/numpy.linspace.html数学stackexchange: https ://math.stackexchange.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM