簡體   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