Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提取和numpy.any函数,有没有可能使它更简单?_Python_Numpy - Fatal编程技术网

Python 提取和numpy.any函数,有没有可能使它更简单?

Python 提取和numpy.any函数,有没有可能使它更简单?,python,numpy,Python,Numpy,如果有任何可能使这段代码更简单,我将非常感激!我正在尝试删除带有零的行。第一列是日期。如果所有其他列都为零,则必须删除它们。列的数量各不相同 import numpy as np condition = [ np.any( list(x)[1:] ) for x in r] r = np.extract( condition, r ) 您可以避免列表理解,而是使用奇特的索引: #!/usr/bin/env python import numpy as np import datetime r

如果有任何可能使这段代码更简单,我将非常感激!我正在尝试删除带有零的行。第一列是日期。如果所有其他列都为零,则必须删除它们。列的数量各不相同

import numpy as np

condition = [ np.any( list(x)[1:] ) for x in r]
r = np.extract( condition, r )

您可以避免列表理解,而是使用奇特的索引:

#!/usr/bin/env python
import numpy as np
import datetime
r=np.array([(datetime.date(2000,1,1),0,1),
            (datetime.date(2000,1,1),1,1),
            (datetime.date(2000,1,1),1,0),
            (datetime.date(2000,1,1),0,0),                        
            ])
r=r[r[:,1:].any(axis=1)]
print(r)
# [[2000-01-01 0 1]
#  [2000-01-01 1 1]
#  [2000-01-01 1 0]
如果r是n数组,那么 r[:,1:]是删除第一列的视图。
r[:,1:]。any(axis=1)是一个布尔数组,然后可以将其用作“奇特的索引”

对我来说似乎足够简单。你有什么不高兴的?只是觉得ndarray必须是一个更好的方式,转换到列表,然后列表理解看起来很奇怪,我看不懂这个。请按“代码样本”格式填写。编辑你的文本,选择代码,然后点击看起来像“101/010”的按钮。这是一个很有希望的答案,但我认为它还不太正确。如果所有的行都是零,他希望行被压缩,而不是任何一个值都是零。非常感谢,我需要的绝对是更好地了解ndarray索引!