A = np.array([[0.94366988, 0.86095311, 0.88896715, 0.93630641, 0.74075403, 0.52849619 , 0.03094677, 0.85707681, 0.88457925, 0.67279696, 0.26601085, 0.4823794 , 0.74741157, 0.78575729, 0.00978911, 0.9203284, 0.02453695, 0.84884703 , 0.2050248, 0.03703224, 0.92931392, 0.11930532, 0.01411064, 0.7832698 , 0.58188015, 0.66897565, 0.75119007, 0.01323558, 0.03402649, 0.99735115 , 0.21031727, 0.78123225, 0.6815842, 0.46647604, 0.66323375, 0.03424828 , 0.08031627, 0.76570656, 0.34760863, 0.06177743, 0.6987531, 0.4106426 , 0.6648871, 0.02776868, 0.93053125, 0.46395717, 0.23971605, 0.9771735 , 0.66202407, 0.10482388]])
Convert the entries of a into 0 (if activation <= 0.5) or 1 (if activation > 0.5)
for i in range(A.shape[1]): if A[i]>0.5: Y_prediction[i] = 1 else: Y_prediction[i] = 0
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
And how to use vectorize this thx
Access Array ElementsThe indexes in NumPy arrays start with 0, meaning that the first element has index 0, and the second has index 1 etc.
To convert numpy float to int array in Python, use the np. astype() function. The np. astype() function takes an array of float values and converts it into an integer array.
One dimensional array contains elements only in one dimension. In other words, the shape of the NumPy array should contain only one value in the tuple.
I think you need vectorized function np.where
:
B = np.where(A > 0.5, 1, 0) print (B) [[1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0]]
B = np.where(A <= 0.5, 0, 1) print (B) [[1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0]]
But better is holdenweb solution if need convert to 0
and 1
only.
np.where
is better if need convert to another scalars like 5
and 10
or a
and b
:
C = np.where(A > 0.5, 5, 10) print (C) [[ 5 5 5 5 5 5 10 5 5 5 10 10 5 5 10 5 10 5 10 10 5 10 10 5 5 5 5 10 10 5 10 5 5 10 5 10 10 5 10 10 5 10 5 10 5 10 10 5 5 10]] D = np.where(A > 0.5, 'a', 'b') print (D) [['a' 'a' 'a' 'a' 'a' 'a' 'b' 'a' 'a' 'a' 'b' 'b' 'a' 'a' 'b' 'a' 'b' 'a' 'b' 'b' 'a' 'b' 'b' 'a' 'a' 'a' 'a' 'b' 'b' 'a' 'b' 'a' 'a' 'b' 'a' 'b' 'b' 'a' 'b' 'b' 'a' 'b' 'a' 'b' 'a' 'b' 'b' 'a' 'a' 'b']]
Timings:
np.random.seed(223) A = np.random.rand(1,1000000) #jez In [64]: %timeit np.where(A > 0.5, 1, 0) 100 loops, best of 3: 7.58 ms per loop #holdenweb In [65]: %timeit (A > 0.5).astype(int) 100 loops, best of 3: 3.47 ms per loop #stamaimer In [66]: %timeit element_wise_round(A) 1 loop, best of 3: 318 ms per loop
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With