2015-11-14 41 views
2

我寫了一個腳本,它給出了分割兩個變量(「A」和「B」)的結果 - 每個變量的輸出都是一個包含26個元素的numpy數組。通常,對於「A」和「B」中的任何兩個元素,操作的結果是一個浮點數,輸出數組中與該操作對應的元素顯示爲浮點數。但奇怪的是,即使輸出應該是一個整數(幾乎總是0或1),整數也會顯示爲「0」。或「1」。在輸出數組中。有什麼辦法可以將數組的這些特定元素變回整數,而不是將它們保持爲浮點數?如何將numpy數組中的特定元素轉換爲整數?

我想寫一個簡單的if語句,將假設爲的任何輸出元素轉換爲整數(即​​將「0」設置爲「0」)。但我遇到了一些麻煩。有任何想法嗎?

+1

是否關注此陣列的打印顯示或內部存儲器?如果你想混合浮點數和整數,'numpy'數組不是正確的對象。 – hpaulj

回答

2

你可能會想閱讀有關數據類型: http://docs.scipy.org/doc/numpy/user/basics.types.html

一個完整的numpy的陣列有一個數據類型。對於你正在做的操作,要求A/B有時是整數並且有時是浮點數是沒有意義的:兩個浮點數組的劃分是浮點數組。

併發症:它可以指定混合類型的數組: http://docs.scipy.org/doc/numpy/user/basics.rec.html#structured-arrays

+0

結構化數組是固定的,但是複雜類型(ex c-structs)。 – tacaswell

1

numpy的陣列的強度是許多低層次的操作可以快速地對數據,因爲所使用的大多數(不是全部)類型執行這些陣列在內存中具有固定大小。例如,你使用的浮點數可能每個需要8個字節。 在這種情況下最重要的是,所有數據共享相同的類型並適合相同數量的內存。如果你真的想要(而且需要),那麼你可以稍微玩一下,但是我不建議你從這種特殊情況開始。嘗試學習這些數組在使用此需求時的強度(但這涉及接受不能將整數和浮點數混合在同一數組中的事實)。

相關問題