3
我有一個大的numpy數組(由30000),我想根據某些條件刪除一些行。此標準僅適用於一列。Python在numpy數組中刪除行
實施例:
>>> p = np.array([[0, 1, 3], [1 , 5, 6], [4, 3, 56], [1, 34, 4]])
>>> p
array([[ 0, 1, 3],
[ 1, 5, 6],
[ 4, 3, 56],
[ 1, 34, 4]])
這裏我想刪除的每一行,其中,第3列的值是> 30,即。這裏第3行。
由於數組非常大,我想避免for
循環。我想到這個:
>>> a[~(a>30).any(1), :]
array([[0, 1, 3],
[1, 5, 6]])
但是,它顯然刪除了最後兩行。關於如何以有效的方式做到這一點的任何想法?
我認爲這是我從來沒有嘗試過的唯一選擇!謝謝 – Jolfulorc 2012-07-25 13:27:19
@Jolfulorc - 歡迎來到SO!如果此答案幫助您找到問題的解決方案,則應該隨時接受它(單擊旁邊的小複選標記)。這可以讓其他人知道你的問題已經解決了,所以他們不會花大量時間來解決問題。 – mgilson 2012-07-25 13:34:44