I\'m new to programming and I need a program, that can select all odd rows and all even columns of a Numpy array at the same time in one code. here is what I tried:
Let's say you have this array, x:
>>> import numpy
>>> x = numpy.array([[ 1, 2, 3, 4, 5],
... [ 6, 7, 8, 9, 10],
... [11, 12, 13, 14, 15],
... [16, 17, 18, 19, 20]])
To get every other odd row, like you mentioned above:
>>> x[::2]
array([[ 1, 2, 3, 4, 5],
[11, 12, 13, 14, 15]])
To get every other even column, like you mentioned above:
>>> x[:, 1::2]
array([[ 2, 4],
[ 7, 9],
[12, 14],
[17, 19]])
Then, combining them together yields:
>>> x[::2, 1::2]
array([[ 2, 4],
[12, 14]])
For more details, see the Indexing docs page.
Slicing an array:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9],[10, 11, 12],[13, 14, 15]])
case1=arr[::2,:] #odd rows
case2=arr[1::2,:] #even rows
case3=arr[:,::2] #odd cols
case4=arr[:,1::2] #even cols
print(case1)
print("\n")
print(case2)
print("\n")
print(case3)
print("\n")
print(case4)
print("\n")
Gives:
[[ 1 2 3]
[ 7 8 9]
[13 14 15]]
[[ 4 5 6]
[10 11 12]]
[[ 1 3]
[ 4 6]
[ 7 9]
[10 12]
[13 15]]
[[ 2]
[ 5]
[ 8]
[11]
[14]]
To get every other odd column:
x[:,0::2]