2

假设我有以下设置:

x=np.array(range(0,100))
y=x**0.5
z=x**2

我怎样才能获得 4 到 8 之间的所有 y 值,并创建一个新数组,其中包含这些 y 值的一行,以及相应的 z 值的一行?

即 x 中的 25 的 y 值为 5,介于 4 和 8 之间,我想要这个值,但我也想要下面行中的 z 值 625。

数学方程只是一个例子,论坛可以是任何东西,包括贝塞尔函数。

谢谢

4

1 回答 1

2
>>> np.vstack((y, z))[:,(y >= 4) & (y <= 8)]
array([[  4.00000000e+00,   4.12310563e+00,   4.24264069e+00,
          4.35889894e+00,   4.47213595e+00,   4.58257569e+00,
          4.69041576e+00,   4.79583152e+00,   4.89897949e+00,
          ...
          7.81024968e+00,   7.87400787e+00,   7.93725393e+00,
          8.00000000e+00],
       [  2.56000000e+02,   2.89000000e+02,   3.24000000e+02,
          3.61000000e+02,   4.00000000e+02,   4.41000000e+02,
          ...
          3.72100000e+03,   3.84400000e+03,   3.96900000e+03,
          4.09600000e+03]])

在这里,vstack()创建一个包含两行的矩阵,一行包含y,一行包含z。然后[...]消除那些不满足标准的列。

于 2012-11-06T17:26:21.707 回答