Extract Indices of Numpy Array Based on Given Bit Information

Dear Python and Numpy Users: My data are in the form of '32-bit unsigned integer' as follows: myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32) I want to get the index of my data where the following occurs: Bit No. 0–1 Bit Combination: 00 How can I do it? I heard this type of problem first time, please help me. Artur

On 18.10.2014 07:58, Artur Bercik wrote:
Dear Python and Numpy Users:
My data are in the form of '32-bit unsigned integer' as follows:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32)
I want to get the index of my data where the following occurs:
Bit No. 0–1 Bit Combination: 00
How can I do it? I heard this type of problem first time, please help me.
Artur
not sure I understand the problem, maybe this? np.where((myData & 0x3) == 0)

On Sat, Oct 18, 2014 at 8:28 PM, Julian Taylor < jtaylor.debian@googlemail.com> wrote:
On 18.10.2014 07:58, Artur Bercik wrote:
Dear Python and Numpy Users:
My data are in the form of '32-bit unsigned integer' as follows:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32)
I want to get the index of my data where the following occurs:
Bit No. 0–1 Bit Combination: 00
How can I do it? I heard this type of problem first time, please help me.
Artur
not sure I understand the problem, maybe this?
np.where((myData & 0x3) == 0)
yes, it works greatly for the following case: myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.uint32) Bit No. 0–1 Bit Combination: 00 Can you make such automation for the following case as well? Bit No. 2–5 Bit Combination: 1101 Thanks in the advance.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion

On Sat, Oct 18, 2014 at 9:00 PM, Artur Bercik <vbubbly21@gmail.com> wrote:
On Sat, Oct 18, 2014 at 8:28 PM, Julian Taylor < jtaylor.debian@googlemail.com> wrote:
On 18.10.2014 07:58, Artur Bercik wrote:
Dear Python and Numpy Users:
My data are in the form of '32-bit unsigned integer' as follows:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32)
I want to get the index of my data where the following occurs:
Bit No. 0–1 Bit Combination: 00
How can I do it? I heard this type of problem first time, please help me.
Artur
not sure I understand the problem, maybe this?
np.where((myData & 0x3) == 0)
yes, it works greatly for the following case:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.uint32) Bit No. 0–1 Bit Combination: 00
Can you make such automation for the following case as well?
Bit No. 2–5 Bit Combination: 1101
Thanks in the advance.
Also wondering why np.where((myData & 0x3) == 0) instead of just np.where((myData & 3) == 0)
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion

On 18.10.2014 14:14, Artur Bercik wrote:
On Sat, Oct 18, 2014 at 9:00 PM, Artur Bercik <vbubbly21@gmail.com <mailto:vbubbly21@gmail.com>> wrote:
On Sat, Oct 18, 2014 at 8:28 PM, Julian Taylor <jtaylor.debian@googlemail.com <mailto:jtaylor.debian@googlemail.com>> wrote:
On 18.10.2014 07:58, Artur Bercik wrote: > Dear Python and Numpy Users: > > My data are in the form of '32-bit unsigned integer' as follows: > > myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, > 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32) > > I want to get the index of my data where the following occurs: > > Bit No. 0–1 > Bit Combination: 00 > > How can I do it? I heard this type of problem first time, please help me. > > Artur >
not sure I understand the problem, maybe this?
np.where((myData & 0x3) == 0)
yes, it works greatly for the following case:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.uint32) Bit No. 0–1 Bit Combination: 00
Can you make such automation for the following case as well?
Bit No. 2–5 Bit Combination: 1101
sure, you can do any of these with the right masks: np.where((myData & 0x3c) == 0x34) you can use bin(number) to check if your numbers are correct.
Also wondering why np.where((myData & 0x3) == 0) instead of just np.where((myData & 3) == 0)
its the same, 0x means the number is in hexadecimal representation, for 3 they happen to be equal (as 3 < 10) It is often easier to work in the hexadecimal representation when dealing with binary data as its base is a power of two. So two digits in hexadecimal represent one byte. In the case above: 0x3c c is 12 -> 1100 3 is 3 -> 11 together you get 111100, mask for bits 2-5

Dear Julian Taylor Thank you very much, I really appreciated your codes. On Sat, Oct 18, 2014 at 9:28 PM, Julian Taylor < jtaylor.debian@googlemail.com> wrote:
On 18.10.2014 14:14, Artur Bercik wrote:
On Sat, Oct 18, 2014 at 9:00 PM, Artur Bercik <vbubbly21@gmail.com <mailto:vbubbly21@gmail.com>> wrote:
On Sat, Oct 18, 2014 at 8:28 PM, Julian Taylor <jtaylor.debian@googlemail.com <mailto:jtaylor.debian@googlemail.com>> wrote:
On 18.10.2014 07:58, Artur Bercik wrote: > Dear Python and Numpy Users: > > My data are in the form of '32-bit unsigned integer' as
follows:
> > myData = np.array([1073741824, 1073741877, 1073742657,
1073742709,
> 1073742723, 1073755137, 1073755189,1073755969],dtype=np.int32) > > I want to get the index of my data where the following occurs: > > Bit No. 0–1 > Bit Combination: 00 > > How can I do it? I heard this type of problem first time,
please help me.
> > Artur >
not sure I understand the problem, maybe this?
np.where((myData & 0x3) == 0)
yes, it works greatly for the following case:
myData = np.array([1073741824, 1073741877, 1073742657, 1073742709, 1073742723, 1073755137, 1073755189,1073755969],dtype=np.uint32) Bit No. 0–1 Bit Combination: 00
Can you make such automation for the following case as well?
Bit No. 2–5 Bit Combination: 1101
sure, you can do any of these with the right masks: np.where((myData & 0x3c) == 0x34)
you can use bin(number) to check if your numbers are correct.
Also wondering why np.where((myData & 0x3) == 0) instead of just np.where((myData & 3) == 0)
its the same, 0x means the number is in hexadecimal representation, for 3 they happen to be equal (as 3 < 10) It is often easier to work in the hexadecimal representation when dealing with binary data as its base is a power of two. So two digits in hexadecimal represent one byte. In the case above: 0x3c c is 12 -> 1100 3 is 3 -> 11 together you get 111100, mask for bits 2-5 _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
participants (2)
-
Artur Bercik
-
Julian Taylor