这是(3x9)数组:
[[ 0 1 2 3 4 5 6 7 8]
[ 9 10 11 12 13 14 15 16 17]
[18 19 20 21 22 23 24 25 26]]
我想这样(3x3):
[[ 2 7 8]
[11 16 17]
[20 25 26]]
我写了一些代码。
有没有更好的方法呢?
AB = x[:,2:] #Removes the first 2 columns
print(AB)
C = np.delete(AB, 1, 1)
print(C)
D = np.delete(C, 1, 1)
print(D)
E = np.delete(D, 1, 1)
print(E)
F = np.delete(E, 1, 1)
print(F)
答案 0 :(得分:2)
index = [0, 1, 3, 4, 5, 6] #Set the index of columns I want to remove
new_a = np.delete(x, index, 1) #x=name of array
#index=calls the index array
#1=is the axis. So the columns
print(new_a) #Print desired array
答案 1 :(得分:1)
您可以使用bulk
和zip
在普通python中执行enumerate
删除:
cols_to_del = [0, 1, 3, 4, 5, 6]
AB_trans = [v for i, v in enumerate(zip(*AB)) if i not in cols_to_del]
AB = np.array(list(zip(*AB_trans)))
print(AB)
# array([[ 2, 7, 8],
# [11, 16, 17],
# [20, 25, 26]])
想法是转置数组,并删除列(现在显示为行)。