データ分析実践
初級問題チェック

問題 19 /40

NumPyのastypeメソッドの結果として誤っているものはどれか。

選択 1

arr = np.array([0.5, 8.9]) arr.astype(np.int64) ▶︎ array([0, 8])

選択 2

arr = np.array([5, 8]) arr.astype(np.float64) ▶︎ array([5., 8.])

選択 3

arr = np.array([-1.2, -3.5]) arr.astype(np.int64) ▶︎ array([-2, -4])

選択 4

arr = np.array([-0.1, -0.05]) arr.astype(np.int64) ▶︎ array([0, 0])

解説

選択肢3が正解です。 【選択肢1】 arr = np.array([0.5, 8.9]) arr.astype(np.int64) ▶︎ array([0, 8]) 正しい結果です。 floatからintに変換すると、小数点以下が切り捨てられます。 【選択肢2】 arr = np.array([5, 8]) arr.astype(np.float64) ▶︎ array([5., 8.]) 正しい結果です。 intをfloatに変換すると.0が付きます。0は省略されます。 【選択肢3】 arr = np.array([-1.2, -3.5]) arr.astype(np.int64) ▶︎ array([-2, -4]) 誤った結果です。 マイナスのfloatをintに変換した場合、絶対値にしてから小数を切り捨てて符号を戻します。-1.2なら、1.2にして小数を切り捨てて符号を戻します。そのため正しい結果は以下です。 array([-1, -3]) 【選択肢4】 arr = np.array([-0.1, -0.05]) arr.astype(np.int64) ▶︎ array([0, 0]) 正しい結果です。 選択肢3と同様に、絶対値にしてから小数を切り捨てて符号を戻します。-0は0と同じため、返り値は0になります。 (公式書籍 p.148)