说我有以下设置:
x=np.array(range(0,100))
y=x**0.5
z=x**2
我怎样才能得到4到8之间的y的所有值,并创建一个新的数组,其中包含那些y值的行,但是对应的z值也是一行?
即。 25 in x的y值为5,介于4和8之间,我喜欢这个值,但我也喜欢下面一行中的625的z值。
数学方程只是一个例子,forumals可以是包括bessel函数在内的任何东西。
由于
答案 0 :(得分: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
。 [...]
然后删除那些不符合标准的列。