gpt4 book ai didi

python - 从 numpy 数组中提取数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:41 25 4
gpt4 key购买 nike

在我开始为我的英语、我糟糕的 Python 知识(新手)和一个可能重复的问题感到抱歉之前。我尝试并搜索了很多,但找不到任何解决我卡住的问题的方法。问题来了;

我有一个名为 array1 的数组,它使用 numpy.loadtxt() 加载,它是一个文本文件,包含 2 列数据,分别为 xy x 范围从 0.4 到 15。增量没有问题。

我还有第二个数组 array2,其中包含 x' 值,范围从 1012

注意:x在每个数组中的增量是不同的。稍后我将使用它们对 y 值进行线性插值。

我想通过使用第二个数组 x' 值范围 10 到 12 来裁剪第一个数组。我试过了;

new_array = array1[(array1>=np.amin(array2)) * (array1<= np.amax(array2))] 

它裁剪第一个数组 (array1)。但我只能提取 x 值。

[ 10.   10.1  10.2  10.3  10.4  10.5  10.6  10.7  10.8  10.9  11.   11.1
11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3
12.4 12.5 12.6 12.7 12.8 12.9]

我想通过给定范围的 x 值从 array1 中提取 xy 的值来自另一个数组。

编辑

array1[[  0.3     0.302   0.304   0.306   0.308   0.31    0.312   0.314   0.316
... 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1
14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. ]
[ 8.82 9. 9.18 9.35 9.52 9.69 9.85 10.02
10.18 10.35 10.52 10.67 10.82 10.97 11.12 11.25
11.39 11.52 …................... 2.3044 1.7773 2.271 2.721 ]]


array2 = [[ 10. 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.1
10.12 10.13 10.14 10.15 10.16 10.17 10.18 10.19 10.2 10.21
10.22 10.23 10.24 10.25 10.26 10.27 10.28 10.29 10.3 10.31
10.33 10.34 10.35 10.36 10.37 10.38 10.39 10.4 10.41 10.42
10.43 10.44 10.45 10.46 10.47 10.48 10.49 10.5 10.51 10.52
10.53 10.54 10.59 10.64 10.7 10.75 10.8 10.85 10.9 10.95 11.
11.05 11.1 11.15 ...... 12.64 12.65 12.66 12.67 12.68 12.69
12.7 12.71 12.72 12.73 12.74 12.75 12.76 12.77 12.78 12.79
12.8 12.81 12.82 12.83 12.84 12.85 12.86 12.87 12.88 12.89
12.9 ][ 0.0058 0.0073 0.0081 0.0088 0.0096 0.0104 0.0112 0.012 0.0128
0.0136 0.0165 0.0018 0.0195 0.021 0.0226 0.0241 0.0256 0.0272
0.0288 0.0334 …. 0.1092 0.0879 0.0667 0.0458 0.0433 0.0409
0.0385 0.0361 0.0337 0.0314 0.0291 0.0268 0.0245 0.0223 0.0209
0.0195 0.0182 0.0168 0.0155 0.0141 0.0128 0.0115 0.0101 0.0088
0.0085 0.0081 0.0078 0.0074 0.0071 0.0068 0.0064 0.0061 0.0058
0.0054]]

再次为我的英语感到抱歉。我希望我成功地解释了自己

非常感谢您的帮助:)

最佳答案

假设第一个索引对应于x,这可能有效:

indices = (array1[0,...] >= np.min(array2[0,...])) & (array1[0,...] <= np.max(array2[0,...]))
xselected = array1[0,indices]
yselected = array1[1,indices]

注意:不要使用np.amin,而是使用np.min。不要将索引与 * 组合在一起,而是使用 bool 值 and:&

我已经使用 array[0,...] 对数组进行了索引,但我认为您也可以在那里使用 array[0],因为0 索引第一个维度。

关于python - 从 numpy 数组中提取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com