In [4]:
import matplotlib.pyplot as plt
import numpy as np

colors = ["b", "g", "r"]
for precision in (3, 11, 1111):
    xs = np.linspace(0, 10, precision)
    ys = np.sin(xs)

    plt.plot(xs, ys, colors[0])
    colors.pop(0)

plt.show()
In [7]:
def stepFunction(x: float) -> float:
    if x < 0:
        return -1
    elif x < 2:
        return 0
    else:
        return 1
    
np.vectorize(stepFunction)(np.array([1.1, -2, 4.4]))
Out[7]:
array([ 0, -1,  1])
In [9]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
print(a[a < 0])
[-0.09]
In [19]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
#mask = np.logical_and(a >= 0, a <= 1)
#mask = (a >= 0) & (a <= 1)
mask = np.array([False, True, True, True, False, True])
print(mask)
print(a[mask])
print(a)
[False  True  True  True False  True]
[0.57 0.64 0.14 0.96]
[ 1.01  0.57  0.64  0.14 -0.09  0.96]
In [22]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
a[4] = 0
print(a)
a[1:4] *= 2
print(a)
[1.01 0.57 0.64 0.14 0.   0.96]
[1.01 1.14 1.28 0.28 0.   0.96]
In [23]:
a = np.zeros(41)
midpoint = len(a)//2 + len(a)%2
for idx in range(0, midpoint):
    a[idx] = idx
    a[-1-idx] = idx

print(a)
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17.
 18. 19. 20. 19. 18. 17. 16. 15. 14. 13. 12. 11. 10.  9.  8.  7.  6.  5.
  4.  3.  2.  1.  0.]
In [25]:
a = np.zeros(41)
midpoint = len(a)//2 + len(a)%2
for idx in range(0, midpoint):
    a[idx:-idx] = idx

print(a)
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 10. 10. 10. 10. 10. 10. 10.
 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10.  9.  8.  7.  6.  5.
  4.  3.  2.  1.  0.]
In [26]:
a = np.zeros((7, 7))
midpoint = len(a)//2 + len(a)%2
for idx in range(0, midpoint):
    a[idx:-idx, idx:-idx] = idx
    
print(a)
[[0. 0. 0. 0. 0. 0. 0.]
 [0. 1. 1. 1. 1. 1. 0.]
 [0. 1. 2. 2. 2. 1. 0.]
 [0. 1. 2. 3. 2. 1. 0.]
 [0. 1. 2. 2. 2. 1. 0.]
 [0. 1. 1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0. 0. 0.]]
In [30]:
lst = [1, 2, 3, 4, 5]
print(lst[1:])
#lst[1:] = 1
lst[1:] = [1, 1, 1, 1]
print(lst)
[2, 3, 4, 5]
[1, 1, 1, 1, 1]
In [32]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
mask = a < 0
a[mask] += 1
#a[a < 0] += 1
print(a)
[1.01 0.57 0.64 0.14 0.91 0.96]
In [34]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
mask = a < 0
a[mask] += 1
a[mask] *= 2
print(a)
[1.01 0.57 0.64 0.14 1.82 0.96]
In [37]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
mask = a < 0
a[mask] += 1
#a[np.logical_not(mask)] *= 2
a[~mask] *= 2
print(a)
[2.02 1.14 1.28 0.28 0.91 1.92]
In [39]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
b = np.where(
    a < 0,
    a * -1,
    a * 2
)
print(b)
print(a)
[2.02 1.14 1.28 0.28 0.09 1.92]
[ 1.01  0.57  0.64  0.14 -0.09  0.96]
In [40]:
a = np.array([1.01, 0.57, 0.64, 0.14, -0.09, 0.96])
clamped = np.where(
    a < 0,     # if val < 0:
    0,         # use 0
    np.where(
        a > 1, # elif val > 1:
        1,     # use 1
        a      # else: original value
    )
)
print(clamped)
[1.01 0.57 0.64 0.14 0.   0.96]