FAQ: Introduction to NumPy - Logical Operations with Arrays

This community-built FAQ covers the “Logical Operations with Arrays” exercise from the lesson “Introduction to NumPy”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Data Science

Introduction to Statistics with NumPy

FAQs on the exercise Logical Operations with Arrays

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Hello!

Please help me solve this mystery:

just_right=porridge[(porridge>60) & (porridge<80)]
just_right=porridge[porridge>60 & porridge<80]

first line works just fine.
second line yields a Value error:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

What does it mean? What is happening with the parentheses that beats the error down?

1 Like

To do so, we place each statement in parentheses…

Sounds like a syntax requirement owing to the nature of the operations within the array.

How can both the array and element iterator (not sure that’s the right term) have the same notation?

>>> a[a > 5]
array([10, 9, 8, 9, 7])

They are each in different context. The a inside the brackets has the execution context of the method that iterates the array.

When you say ‘the execution context of the method’, is that something within the numpy module that runs in the background?

Yes, there is a numpy method of some sort running in the background, and it is that context in which a is declared.

To see that there is no relation between the two a’s, try changing the inner one to another letter.

Tried it and got a NameError after changing the inner ‘a’ to a ‘b’

Then it is definitely some part of the inner workings of Numpy. We would need to see the source code to see how that is implemented.

1 Like

SERP

Going through some of the results we see that Numpy is written in C which would explain its speed and power.