0

I'm new to numpy and have read several other posts like mine but nothing is working for me.

I have a large array with many NaNs and I'd like to look at values that are not NaN.

flower_matrix = np.array([
    [NaN,1,2,NaN,NaN,NaN,NaN,NaN,NaN,NaN,10,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,12,13,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [0,NaN,NaN,3,4,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,2,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,22,23],
    [NaN,NaN,2,NaN,NaN,5,6,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,4,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,16,17,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,4,NaN,NaN,7,8,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,],
    [NaN,NaN,NaN,NaN,NaN,NaN,6,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,18,19,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,6,NaN,NaN,9,10,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,8,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,20,21,NaN,NaN],
    [0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,8,NaN,NaN,11,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,10,NaN,NaN,NaN,14,15,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,1,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,15,NaN,NaN,NaN,19,NaN,NaN,NaN,NaN],
    [NaN,1,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,18,NaN,NaN,NaN,22,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,11,NaN,NaN,NaN,NaN,NaN,17,NaN,NaN,NaN,21,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,11,12,NaN,NaN,NaN,16,NaN,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,5,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,15,NaN,NaN,NaN,NaN,NaN,NaN,NaN,23],
    [NaN,NaN,NaN,NaN,NaN,5,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,14,NaN,NaN,NaN,18,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,7,NaN,NaN,NaN,NaN,NaN,13,NaN,NaN,NaN,17,NaN,NaN,NaN,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,7,NaN,NaN,NaN,NaN,12,NaN,NaN,NaN,NaN,NaN,NaN,NaN,20,NaN,NaN,NaN],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,9,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,19,NaN,NaN,NaN,23],
    [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,9,NaN,NaN,NaN,NaN,14,NaN,NaN,NaN,NaN,NaN,NaN,NaN,22,NaN],
    [NaN,NaN,NaN,3,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,13,NaN,NaN,NaN,NaN,NaN,NaN,NaN,21,NaN,NaN],
    [NaN,NaN,NaN,3,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,16,NaN,NaN,NaN,20,NaN,NaN,NaN]])

I know that I can do

print(flower_matrix[0,1])

to get the value 1.0. I'm looking to do something similar but iterated through columns and rows. My best guess is something like:

for i in flower_matrix:
    for j in flower_matrix:
        if (i,j) != NaN:
            print(i,j)

But of course this doesn't work. I have 24 columns and 24 rows and I want to iterate through each value and return the value if it is not NaN. Does this make sense?

Thanks in advance!

1 Answer 1

2

You can try numpy 'isnan' function instead of != comparison which does not work for NaN values. Also you may try 'is' keyword of Python. For Python: NaN == NaN gives False NaN is NaN gives True

This should help you with your problem.

print(flower_matrix[~np.isnan(flower_matrix)])

If you want iterative case:

for i in flower_matrix:
    for j in i:
        if j == j:
            print(j)
Sign up to request clarification or add additional context in comments.

4 Comments

isnan is very helpful, thank you! For the iterative case, Python threw me the error: "IndexError: arrays used as indices must be of integer (or boolean) type" Is this because NaN is a float?
My bad I am editing the answer
Great, thanks! The index error is gone, but it is printing the nans for some reason...
Try like this. I think this would help

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.