2016-06-21 3 views
0

What is the L in numpy.shape and 32 in numpy.type of an array?を読んでいます。私はを知っています。理由は、の末尾に「L」があります。しかし、私は自分のデータセットのサイズを知ることを含むいくつかの操作をしたいと思います。Numpy.shapeには接尾辞が付いています。それを取り除く最適な方法

明らかに、接尾辞を取り除くために単純な文字列処理を行うことはできますが、私はそれが常にそこにあるとは思わないと思います(前回は別のマシンでコードを実行したのではありませんでした)。

これを処理するにはどうすればよいですか? shape()の代わりに何かを使うべきですか?シンプルな「数値部分を整数にキャストして残りを捨てる」機能がありますか?出力に使用する必要がありますか? shape()私は接尾辞を望んでいないのですか?

ボーナスに関する質問:これはいつ導入されたのですか?なぜそれが1つのシステムに表示され、別のシステムで表示されるのでしょうか(両方ともPython 2.7、古いシステムのnumpyバージョン) docsにそれについて言及されていないので、新しいシステムがそれを持つことができるかどうかを知るのに役立つ歴史はありません。

答えて

0

Lは、値を表示値ではなくintとしてよりも、longとして格納されていることを示すのアーチファクトである:それは実際値の一部ありません。したがって、あなたはそれを無視することができます。

>>> num = 123L # create a long for testing 
>>> num 
123L 
>>> num + 1 # simple operations 
124L 
>>> len(range(num)) # function calls 
123 
>>> math.sqrt(num) # math module calls also work, most of the time. 
11.090536506409418 

あなたははそれを取り除く必要がある場合は、int()を使用することができます。

>>> int(num) # convert to int 
123 

あなたは非常に大きな値を持っている場合、それが問題になることができる唯一の時間は次のとおりです。

>>> num = 2147483648 
>>> num 
2147483648L 
>>> range(num) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
OverflowError: range() result has too many items 

rangeの引数を大きくして使用しているのであれば、おそらくその行のどこかのところでは非調和であるでしょう。

+0

まあ*何か*私はそれから減算しようとした行にTypeErrorを与えていました - しかし、私が減算を元に戻したとき、それはそうではありませんでした。そして、私は 'int'がそれを行うことができるのか分からなかったので、2回以上あなたに感謝します。 –

関連する問題