データ分析実践
初級問題チェック
問題 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)