indexing numpy array with logical operator

2024/10/13 1:17:30

I have a 2d numpy array, for instance as:

import numpy as np
a1 = np.zeros( (500,2) )a1[:,0]=np.arange(0,500)
a1[:,1]=np.arange(0.5,1000,2)
# could be also read from txt

then I want to select the indexes corresponding to a slice that matches a criteria such as all the value a1[:,1] included in the range (l1,l2):

l1=20.0; l2=900.0; #as example

I'd like to do in a condensed expression. However, neither:

np.where(a1[:,1]>l1 and a1[:,1]<l2)

(it gives ValueError and it suggests to use np.all, which it is not clear to me in such a case); neither:

np.intersect1d(np.where(a1[:,1]>l1),np.where(a1[:,1]<l2))

is working (it gives unhashable type: 'numpy.ndarray')

My idea is then to use these indexes to map another array of size (500,n).

Is there any reasonable way to select indexes in such way? Or: is it necessary to use some mask in such case?

Answer

This should work

np.where((a1[:,1]>l1) & (a1[:,1]<l2))

or

np.where(np.logical_and(a1[:,1]>l1, a1[:,1]<l2))
https://en.xdnf.cn/q/69588.html

Related Q&A

Stream multiple files into a readable object in Python

I have a function which processes binary data from a file using file.read(len) method. However, my file is huge and is cut into many smaller files 50 MBytes each. Is there some wrapper class that feeds…

AWS Python SDK | Route 53 - delete resource record

How to delete a DNS record in Route 53? I followed the documentation but I still cant make it work. I dont know if Im missing something here.Based on the documentation:DELETE : Deletes a existing reso…

How can I change to gt; and gt; to ? [duplicate]

This question already has answers here:Decode HTML entities in Python string?(7 answers)Closed 8 years ago.print u<How can I print <print > How can I print >

basemap: How to remove actual lat/lon lines while keeping the ticks on the axis

I plotted a map by basemap as below:plt.figure(figsize=(7,6)) m = Basemap(projection=cyl,llcrnrlat=40.125,urcrnrlat=44.625,\llcrnrlon=-71.875,urcrnrlon=-66.375,resolution=h) m.drawparallels(np.arange(i…

Re-initialize variables in Tensorflow

I am using a Tensorflow tf.Saver to load a pre-trained model and I want to re-train a few of its layers by erasing (re-initializing to random) their appropriate weights and biases, then training those …

Python: invert image with transparent background (PIL, Gimp,...)

I have a set of white icons on transparent background, and Id like to invert them all to be black on transparent background. Have tried with PIL (ImageChops) but it does not seem to work with transpare…

vlookup between 2 Pandas dataframes

I have 2 pandas Dataframes as follows.DF1:Security ISIN ABC I1 DEF I2 JHK I3 LMN I4 OPQ I5and DF2:ISIN ValueI2 100I3 200I5 …

replacing quotes, commas, apostrophes w/ regex - python/pandas

I have a column with addresses, and sometimes it has these characters I want to remove => - " - ,(apostrophe, double quotes, commas)I would like to replace these characters with space in one s…

Reading text from image

Any suggestions on converting these images to text? Im using pytesseract and its working wonderfully in most cases except this. Ideally Id read these numbers exactly. Worst case I can just try to u…

XGBoost and sparse matrix

I am trying to use xgboost to run -using python - on a classification problem, where I have the data in a numpy matrix X (rows = observations & columns = features) and the labels in a numpy array y…