Home>

### python : Please explain the line of code

I got a line of code from the net that works correctly, but I don't know how

``````import numpy as np
randomArray= np.random.uniform(1, 100, size=(5,5))
columnSumm= list(map(sum,zip(*randomArray)))
print(randomArray, columnSumm)
``````

Please explain the third line of code in detail, in plain language.

• Answer # 1

`zip(*my_list)`is a well-known trick in Vanilla Python to transpose a matrix (a list of lists).

Example:

``````In : lst= [[1,2], [3,4]]
In : list(zip(*lst))
Out: [(1, 3), (2, 4)]
``````

But since you're already using Numpy, why not take advantage of its fast and optimized methods:

``````In : randomArray.sum(axis=0)
Out:
array([343.75311042, 216.14459965, 300.61339319, 128.05807225,
223.37915629])
In: columnSumm
Out:
[343.7531104159996,
216.14459964962612,
300.6133931881401,
128.05807225046016,
223.3791562915357]
``````

for large Numpy arrays, the code will run orders of magnitude faster

• Answer # 2

You are creating an array of size`5 by 5`with random numbers from 1 to 100, then create a new array`1 to 5`from the sums of each column.

`list`-list creation

Function`map()`is used to apply a function to each element of an iterable object (such as a list or dictionary) and return a new iterator to get the results

`sum`-Summarizes the elements of the specified object and returns the result.

function`zip`allows you to walk through several iterable objects (lists, etc.)

In my case, zip goes through each line of the array?

Spenkau2022-02-14 07:10:52

yes, in this case it is passed through the columns because of the pre-created list. go through the print on each step and you will understand everything, start with print(list(randomArray)) and so on

tomato-magnet-regulato2022-02-14 07:33:46