Skip to content Skip to sidebar Skip to footer

Getting The Minimum Value By Using Lambda Through Numpy Array Python

The code below calculates the Compounding values starting from $100 and the percentage gains gains. The code below goes from the start off with the entirety of the gains array [20,

Solution 1:

I think I've understood the requirement. Calculating the compound factors after the np.triu fills the zeroes with ones which means the min method returns a valid value.

import numpy as np  

gains= np.array( [20,3,4,55,6.5,-10, 20,-60,5] ) # Gains in %
amount = 100

def moneyrisk( arr ):
    rep = arr[ None ].repeat( len(arr), 0 )
    rep_t = np.triu( rep, k = 0 )
    rep_t = ( 1 + rep_t * .01 )   # Create factors to compound in rep_t 

    result =  amount*(rep_t.cumprod( axis = 1 ).min( axis = 1 ))  
    # compound and find min value.

    return [ x if x < amount else None for x in result ]          
    # Set >= amount to None in a list as numpy floats can't hold None
    
moneyrisk( gains )

# [91.667811456, 76.38984288, 74.164896, 71.3124, 46.008, 43.2, 48.0, 40.0, None]

Post a Comment for "Getting The Minimum Value By Using Lambda Through Numpy Array Python"