繁体   English   中英

从numpy数组中提取数组

[英]Extract an array from a numpy array

在开始对英语感到抱歉之前,我对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第一个数组( 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代替。 不要将索引与*组合在一起,而应使用boolean &

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM