```
import numpy as np
# create a 2 dimentional array and put some values in
myData = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
print (myData.shape)
print (myData[0,1])
print (myData[1,1])
if (myData[0,1]>myData[1,1]):
print ("yes")
else:
print ("no")
```

(2, 3)

2.2

5.5

no

The above is self-explanatory, we are comparing two specific elements in the array. But if we don’t specify specific elements to compare, we receive an error. Take the following code:

```
import numpy as np
myData = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
print (myData.shape)
print (myData[0,:])
print (myData[1,:])
if (myData[0,:]>myData[1,:]):
print ("yes")
else:
print ("no")
```

(2, 3)

[1.1 2.2 3.3]

[4.4 5.5 6.6]

We see a value error when we try to do the above, as we are not evaluation 1 element against another element. We are trying to evaluate a range against another range.

## a.any() and a.all()

What is a.any() and a.all().

According to the documenation:

a.any():

Test whether any array element along a given axis evaluates to True.

a.all()

Let’s try using this.

```
import numpy as np
myData = np.array([[1.1, 9.2, 2.3], [4.4, 5.5, 6.6]])
print (myData.shape)
print (myData[0,:])
print (myData[1,:])
if (myData[0,:]>myData[1,:]).any():
print ("yes")
else:
print ("no")
```

(2, 3)

[1.1 9.2 2.3]

[4.4 5.5 6.6]

yes

By using any() above, we are saying if *any *of the elements in the first row are greater than *any *of matching

To be clear, what it’s asking is effectively 3 questions.

- Is 1.1 greater than 4.4?
- Is 9.2 greater than 5.5?
- Is 2.3 greater than 6.6?

As you can see, question 2 would return *true *whilst 1 & 3 would return false. Because we are using* any()*, the if statement returns *true*.

As you can see, 9.2 is greater than the corresponding element that it’s being tested against, so it returns true (prints “yes”).

It now becomes more obvious what *all()* will do.

Using the same array the following code returns “No”.

```
import numpy as np
myData = np.array([[1.1, 9.2, 2.3], [4.4, 5.5, 6.6]])
print (myData.shape)
print (myData[0,:])
print (myData[1,:])
if (myData[0,:]>myData[1,:]).all():
print ("yes")
else:
print ("no")
```

(2, 3)

[1.1 9.2 2.3]

[4.4 5.5 6.6]

no

Using *all()*, the 3 questions we asked above *all* need to be true, as below.

```
import numpy as np
myData = np.array([[14.1, 9.2, 6.600001], [4.4, 5.5, 6.6]])
print (myData.shape)
print (myData[0,:])
print (myData[1,:])
if (myData[0,:]>myData[1,:]).all():
print ("yes")
else:
print ("no")
```

(2, 3)

[14.1 9.2 6.600001]

[4.4 5.5 6.6]

yes

You can see from the above that every element of the first data is greater than every corresponding element in the second data.

### Further example using .all()

```
jamesData = np.array([[0.3, 0.9, 0.42], [4.4, 5.5, 6.6]])
if (jamesData [0,0]>jamesData [0,1:2]).all():
print ("0.3 is greater than 0.9 and 0.42")
else:
print ("0.3 is NOT greater than 0.9 and 0.42")
```

0.3 is NOT greater than 0.9 and 0.42