我想創建一個數組,其中包含一個函數f(x,y,z)
。如果它是一個變量的函數,我會做,比如:如何創建一個包含多變量函數值的numpy數組?
sinx = numpy.sin(numpy.linspace(-5,5,100))
獲得sin(x)
爲x
在[-5,5]
我如何可以做同樣的獲得,例如sin(x+y+z)
?
我想創建一個數組,其中包含一個函數f(x,y,z)
。如果它是一個變量的函數,我會做,比如:如何創建一個包含多變量函數值的numpy數組?
sinx = numpy.sin(numpy.linspace(-5,5,100))
獲得sin(x)
爲x
在[-5,5]
我如何可以做同樣的獲得,例如sin(x+y+z)
?
我似乎已經找到一種方法:
# define the range of x,y,z
x_range = numpy.linspace(x_min,x_max,x_num)
y_range = numpy.linspace(y_min,y_max,y_num)
z_range = numpy.linspace(z_min,z_max,z_num)
# create arrays x,y,z in the correct dimensions
# so that they create the grid
x,y,z = numpy.ix_(x_range,y_range,z_range)
# calculate the function of x, y and z
sinxyz = numpy.sin(x+y+z)
xyz = numpy.mgrid[-5:5,-5:5,-5:5]
sinxyz = numpy.sin(xyz[0]+xyz[1]+xyz[2])
的numpy.mgrid功能將發揮同樣的
x,y,z = numpy.mgrid[x_min:x_max:x_num, y_min:y_max:y_num, z_min:z_max:z_num]
sinxyz = numpy.sin(x+y+z)
編輯:以得到它的工作x_num
,y_num
和z_num
必須是顯式數字,後跟j
,例如,x,y = numpy.mgrid[-1:1:10j, -1:1:10j]
x,y,z和/或你計劃如何產生它們的值是多少? – Parthan 2009-09-05 10:33:21
x,y,z在所有三維上都是'numpy.linspace(-5,5,100)'的笛卡爾乘積。我不知道生成它們的最佳方式。我想這是問題的先決條件。 – 2009-09-05 10:58:15