I use several different programming languages. Whenever I switch between languages, there’s always an adjustment time in my head. For some reason, whenever I switch from C# to Python with NumPy, it always takes me about an hour to start thinking fully in Python. In particular, it always takes me time to recall Python/NumPy array initializations.
One of the causes of this is that C# has basically two ways to instantiate an array:
double[] arr1 = new double[4];
double[] arr2 = new double[] { 1.0, 5.0, 2.0 };
But Python NumPy has many ways to instantiate. The ones I use most are often are np.zeros(), np.array(), np.full(), and a return from np.random.choice(). For example:
arr1 = np.zeros(shape=5, dtype=np.float32) # 5 0.0 cells arr2 = np.array([17,2,5,0,5,12], dtype=np.int) arr3 = np.array(range(0,5), dtype=np.int) # [0,1,2,3,4] arr4 = np.full(shape=3, fill_value=0.01, dtype=np.float64) arr5 = np.random.choice(7, 2) # 2 random ints between [0,6] mat1 = np.zeros(shape=(2,3), dtype=np.float32) # 2x3 matrix
There are several implications. One is that I prefer programming languages that have sparse feature sets — I prefer to know everything about a small language. For example, the np.zeros() function is redundant in a sense because you can get the same effect using np.full(fill_value=0.0).
Another implication is the high cost of context switching when programming. It costs time and effort to switch languages (for example, working with C# on Monday, Wednesday, Friday, and with Python on Tuesday, Thursday). Or doing programming from 9:00 AM to 11:00 AM, then switching over to email tasks, then switching back to programming.

.NET Test Automation Recipes
Software Testing
SciPy Programming Succinctly
Keras Succinctly
R Programming
2026 Visual Studio Live
2025 Summer MLADS Conference
2026 DevIntersection Conference
2025 Machine Learning Week
2025 Ai4 Conference
2026 G2E Conference
2026 iSC West Conference
You must be logged in to post a comment.