Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to count an element that exceed our criteria in a list that is in a list that is also in a list (a list with a depth of 4 lists (?))?

I’m trying to count how many element that is exceed some criteria (for exemple: 0.7) and then convert them into percent, the element is in a multiple list that look like this:

[[[[0.00173012]
   [0.0009075 ]
   [0.00080378]
   ...
   [0.00069336]
   [0.00074539]
   [0.00186453]]

  [[0.00081442]
   [0.00022855]
   [0.00019197]
   ...
   [0.00018318]
   [0.00017222]
   [0.00075811]]

  [[0.00084458]
   [0.00020444]
   [0.0001783 ]
   ...
   [0.00020849]
   [0.00017066]
   [0.00070635]]

  ...

  [[0.00073932]
   [0.00022051]
   [0.00024553]
   ...
   [0.00028661]
   [0.00019603]
   [0.0007242 ]]

  [[0.00085666]
   [0.0002345 ]
   [0.00021651]
   ...
   [0.0002319 ]
   [0.00017067]
   [0.00066847]]

  [[0.00188439]
   [0.00092146]
   [0.00082662]
   ...
   [0.00077084]
   [0.00066442]
   [0.00178707]]]]

info: there is ... because it is a long list and cant fit all the list in the output cell (it is originally an image)

I’ve tried using:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

len(pex > 0.7)/100
#pex is variable contain the multiple list above

but it’s not really working because the ouput from the len is just 1, and if i divide it by 100 the output will be just 0.01

Is there any way for me to easily count all the element and the element that exceed some criteria so i can convert them into percent?? TIA

>Solution :

If you are allowed to use numpy this can be easily done, consider following example

import numpy as np
data = [[[1,2],[3,4]],[[5,6],[7,8]]]
arr = np.array(data) # create numpy.array
print(np.sum(arr>5)) # count elements > 5
print(arr.size) # number of all elements

output

3
8

Explanation: convert nested lists into numpy.array use comparison to get same-shaped array with Trues where value greater than 5 and Falses elsewhere, then use numpy.sum (not built-in sum function) to get count, as True and False are treated as 1 and 0 when subjected to arithmetic operations (this also apply outside numpy, e.g. sum([True,True,True]) gives 3)

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading