我有一個數組包含五個不同類別(A-E)中三個不同指標(X-Z)的數據。 現在我想檢查數據集中的每一列是否有0。如果連續有0,我想刪除這種類型的所有指標。如何刪除一個包含零的第n行?
在我的最小的例子中,它應該找到其中一個Y行的零,因此刪除所有的Y行。
AA =(['0','A','B','C','D','E'],
['X','2','3','3','3','4'],
['Y','3','4','9','7','3'],
['Z','3','4','6','3','4'],
['X','2','3','3','3','4'],
['Y','3','4','8','7','0'],
['Z','3','4','6','3','4'],
['X','2','5','3','3','4'],
['Y','3','4','0','7','3'],
['Z','3','4','6','3','4'])
我的代碼如下:
import numpy as np
sequence = 3 #number of columns per sequence X,Y,Z
AA = np.array(AA)
for i in range(1,AA.shape[0]):
for j in range(1,AA.shape[1]):
if j == 0.0:
for k in range(np.min((j-1)/sequence,1),AA.shape[0],sequence):
np.delete(AA, k, 0)
,應該給我:
AA =(['0','A','B','C','D','E'],
['X','2','3','3','3','4'],
['Z','3','4','6','3','4'],
['X','2','3','3','3','4'],
['Z','3','4','6','3','4'],
['X','2','5','3','3','4'],
['Z','3','4','6','3','4'])
但不知何故,我的代碼不會刪除任何東西。所以我想我的刪除功能有問題,但我無法弄清楚究竟是什麼問題。在我的實際數據中,指標(X-Z)並不完全一樣,但是'asdf-X'或'qwer -Y-asdf'並不完全相同。所以總是第一個' - '分隔符之後的標籤部分是相同的。
所以我不能在它們上使用set()函數,而是必須通過與檢測到0的行的距離來選擇要刪除的行。
問題是在刪除功能之前。我認爲j從1到AA.shape [1]從不等於0。你希望AA [i,j] 0 – Glostas
@Glostas,非常感謝你的輸入!儘管我對編碼很陌生,但我應該注意到這一點。但即使有這種適應'如果AA [i,j] == 0.0:'我的刪除功能不起作用。 – Dave
我沒有真正檢查它。在AA中你有字符串,0.0是一個浮點數。這永遠不可能是平等的。嘗試如果AA [i,j]是否爲'0'。作爲一般的提示:使用print('輸入if')或其他東西來檢查代碼是否進入你的if語句 – Glostas