0

私は小さなプログラムをコーディングしましたが、現在、さまざまなオペレーティング システムで動作するようにしています。私のプログラムは、numpy バ​​ージョン 1.6 で導入された関数count_nonzeroに大きく依存しています。

私の主なワークステーションは、numpy (ver. 1.6.2) と scipy (ver. 0.11) を搭載した Debian Linux です。ただし、Windows では、count_nonzeroコマンドが使用できない 1.6 未満の古い numpy バ​​ージョンがセットアップに含まれる可能性があります。したがって、古いnumpyバージョンのシステムで動作するカスタムcount_nonzero関数が必要です。

def count_nonzero (自己、配列):

    if hasattr(numpy,'count_nonzero'):
        return numpy.count_nonzero(array)
    elif hasattr(scipy,'count_nonzero'):
        return scipy.count_nonzero(array)
    else:
        # Alternative ?

どうすればこれを達成できますか?

4

2 に答える 2

1

これでうまくいくはずです:

(array != 0).sum()
于 2013-03-30T15:34:00.353 に答える
0

ああ、わかりました解決策を見つけましたが、よりスマートな代替案を受け入れることができます:)

numpy.size(array[array!=0])
于 2013-03-30T14:34:52.693 に答える