Thank you all for excellent answers!
My python skill is poor, so I am sorry for that!
import numpy as np
print('----------------------------------------')
print('Before modification:')
a = np.random.randn(1, 3) * 1.0
print('a: ', a)
b = np.random.randn(1, 3) * 1.0
print('b: ', b)
c = np.random.randn(1, 3) * 1.0
print('c: ', c)
print('----------------------------------------')
for a1, b1, c1 in zip([a, b, c], [a, b, c], [a, b, c]):
a1 += 10 * 0.01
b1 += 10 * 0.01
c1 += 10 * 0.01
print('a1 is Equal to a: ', np.array_equal(a1, a))
print('a1 is Equal to b: ', np.array_equal(a1, b))
print('a1 is Equal to c: ', np.array_equal(a1, c))
print('----------------------------------------')
print('After modification:')
print('a: ', a)
print('b: ', b)
print('c: ', c)
print('----------------------------------------')
Outputs:
----------------------------------------
Before modification:
a: [[-0.79535459 -0.08678677 1.46957521]]
b: [[-1.05908792 -0.90121069 1.07055281]]
c: [[ 1.18976226 0.24700716 -0.08481322]]
----------------------------------------
a1 is Equal to a: True
a1 is Equal to b: False
a1 is Equal to c: False
----------------------------------------
a1 is Equal to a: False
a1 is Equal to b: True
a1 is Equal to c: False
----------------------------------------
a1 is Equal to a: False
a1 is Equal to b: False
a1 is Equal to c: True
----------------------------------------
After modification:
a: [[-0.69535459 0.01321323 1.56957521]]
b: [[-0.95908792 -0.80121069 1.17055281]]
c: [[ 1.28976226 0.34700716 0.01518678]]
jyotish is exactly right, and answered what I was missing! Thank You!
For C# I think I will look at a Parallel.For
implementation here.
EDIT:
For others learning also, I also found it helpful to see this code work:
import numpy as np
print('----------------------------------------')
print('Before modification:')
a = np.random.randn(1, 3) * 1.0
print('a: ', a)
b = np.random.randn(1, 3) * 1.0
print('b: ', b)
c = np.random.randn(1, 3) * 1.0
print('c: ', c)
print('----------------------------------------')
for a1, b1, c1 in zip([a, b, c], [a, b, c], [a, b, c]):
a1[0][0] = 10 * 0.01
print('a1 is Equal to a: ', np.array_equal(a1, a))
print('a1 is Equal to b: ', np.array_equal(a1, b))
print('a1 is Equal to c: ', np.array_equal(a1, c))
print('----------------------------------------')
print('After modification:')
print('a: ', a)
print('b: ', b)
print('c: ', c)
print('----------------------------------------')
Outputs:
----------------------------------------
Before modification:
a: [[-0.78734047 -0.04803815 0.20810081]]
b: [[ 1.88121331 0.91649695 0.02482977]]
c: [[-0.24219954 -0.10183608 0.85180522]]
----------------------------------------
a1 is Equal to a: True
a1 is Equal to b: False
a1 is Equal to c: False
----------------------------------------
a1 is Equal to a: False
a1 is Equal to b: True
a1 is Equal to c: False
----------------------------------------
a1 is Equal to a: False
a1 is Equal to b: False
a1 is Equal to c: True
----------------------------------------
After modification:
a: [[ 0.1 -0.04803815 0.20810081]]
b: [[ 0.1 0.91649695 0.02482977]]
c: [[ 0.1 -0.10183608 0.85180522]]
----------------------------------------
As you can see, only modifying the first column of the <class 'numpy.ndarray'>
data type that I am using. Its a reasonably deep operation.