假设我有以下设置:
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。
数学方程只是一个例子,论坛可以是任何东西,包括贝塞尔函数。
谢谢
>>> 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
。然后[...]
消除那些不满足标准的列。