## Question or problem about Python programming:

Suppose I have and m x n array. I want to pass each column of this array to a function to perform some operation on the entire column. How do I iterate over the columns of the array?

For example, I have a 4 x 3 array like

1 99 2 2 14 5 3 12 7 4 43 1 for column in array: some_function(column)

where column would be “1,2,3,4” in the first iteration, “99,14,12,43” in the second, and “2,5,7,1” in the third.

## How to solve the problem:

### Solution 1:

Just iterate over the transposed of your array:

for column in array.T: some_function(column)

### Solution 2:

This should give you a start

>>> for col in range(arr.shape[1]): some_function(arr[:,col]) [1 2 3 4] [99 14 12 43] [2 5 7 1]

### Solution 3:

For a three dimensional array you could try:

for c in array.transpose(1, 0, 2): do_stuff(c)

See the docs on how `array.transpose`

works. Basically you are specifying which dimension to shift. In this case we are shifting the second dimension (e.g. columns) to the first dimension.

### Solution 4:

for c in np.hsplit(array, array.shape[1]): some_fun(c)

### Solution 5:

You can also use unzip to iterate through the columns

for col in zip(*array): some_function(col)