I was trying to get a feel for how often the work around occurs. I found three
clear examples in Scipy and one unclear case. One case in holoviews. Two in
numpy. One from soundappraisal's code base.
Next to prepending to the output, I also see prepending to the input as a
workaround.
Some examples of workarounds:
scipy: (prepending to the output)
scipy/scipy/sparse/construct.py:
'''Python
row_offsets = np.append(0, np.cumsum(brow_lengths))
col_offsets = np.append(0, np.cumsum(bcol_lengths))
'''
scipy/scipy/sparse/dia.py:
'''Python
indptr = np.zeros(num_cols + 1, dtype=idx_dtype)
indptr[1:offset_len+1] = np.cumsum(mask.sum(axis=0))
'''
scipy/scipy/sparse/csgraph/_tools.pyx:
'''Python
indptr = np.zeros(N + 1, dtype=ITYPE)
indptr[1:] = mask.sum(1).cumsum()
'''
Not sure whether this is also an example:
scipy/scipy/stats/_hypotests_pythran.py
'''Python
# Now fill in the values. We cannot use cumsum, unfortunately.
val = 0.0 if minj == 0 else 1.0
for jj in range(maxj - minj):
j = jj + minj
val = (A[jj + minj - lastminj] * i + val * j) / (i + j)
A[jj] = val
'''
holoviews: (prepending to the input)
'''Python
# We add a zero in the begging for the cumulative sum
points = np.zeros((areas_in_radians.shape[0] + 1))
points[1:] = areas_in_radians
points = points.cumsum()
'''
numpy (prepending to the input):
numpy/numpy/lib/_iotools.py :
'''Python
idx = np.cumsum([0] + list(delimiter))
'''
numpy/numpy/lib/histograms.py
'''Python
cw = np.concatenate((zero, sw.cumsum()))
'''
soundappraisal own code: (prepending to the output)
'''Python
def get_cumulativepixelareas(whiteboard):
whiteboard['cumulativepixelareas'] = \
np.concatenate((np.array([0, ]),
np.cumsum(whiteboard['pixelareas'])))
return True
'''
_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: [email protected]