User Tools

Site Tools


other:python:misc_by_jyp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:python:misc_by_jyp [2022/02/21 12:47]
jypeter [Sorting] Added link to numpy routines
other:python:misc_by_jyp [2022/02/21 15:15]
jypeter [numpy related stuff]
Line 221: Line 221:
 ['​c',​ '​d',​ '​b',​ '​a'​]</​code>​ ['​c',​ '​d',​ '​b',​ '​a'​]</​code>​
  
 +==== numpy related stuff ====
 +
 +=== Finding and counting unique values ===
 +
 +Use ''​np.unique'',​ do **not** try to use histogram related functions!
 +
 +<​code>>>>​ vals = np.random.randint(2,​ 5, (10,)) * 0.5 # Get 10 discreet float values
 +>>>​ vals
 +array([1. , 2. , 1. , 2. , 2. , 1.5, 1. , 1.5, 2. , 1.5])
 +
 +>>>​ np.unique(vals)
 +array([1. , 1.5, 2. ])
 +>>>​ unique_vals,​ nb_unique = np.unique(vals,​ return_counts=True)
 +>>>​ unique_vals
 +array([1. , 1.5, 2. ])
 +>>>​ nb_unique
 +array([3, 3, 4])
 +
 +>>>​ sorted_vals = np.sort(vals) # Sorted copy, in order to check the result
 +>>>​ sorted_vals
 +array([1. , 1. , 1. , 1.5, 1.5, 1.5, 2. , 2. , 2. , 2. ])</​code>​
 +
 +=== Applying a ufunc over all the elements of an array ===
 +
 +There are all sorts of //ufuncs// (Universal Functions), and we will just use below ''​add''​ from the [[https://​numpy.org/​doc/​stable/​reference/​ufuncs.html#​math-operations|math operations]],​ applied on the arrays defined in [[#​finding_and_counting_unique_values|Finding and counting unique values]]
 +
 +<​code>#​ Get the sum of all the elements of '​vals'​
 +>>>​ np.add.reduce(vals)
 +15.5
 +>>>​ np.add.reduce(sorted_vals)
 +15.5
 +>>>​ vals.sum() # The usual and easy way to do it
 +15.5</​code>​
  
 /* /*
other/python/misc_by_jyp.txt · Last modified: 2024/04/19 12:02 by jypeter