レッスン2 / 3問目

『size, nbytes, itemsize』

このレッスンではndarrayのプロパティについてさらに学習していきましょう。(本レッスンは前提知識として簡単なバイトとビットの知識が必要となります。)

このレッスンでは以下3つのプロパティについて学習します。

プロパティ 説明
size 要素数
itemsize 要素一つのバイト数
nbytes 全体のバイト数

では順番に見ていきましょう。まずはsizeプロパティです。

  1. arr = np.array([1, 2, 3])
  2. print(arr.size)
3

sizeプロパティは配列全体の要素数を持つプロパティです。今回は配列の要素数は1、2、3の合計3個なのでsizeは3となります。
続いてitemsizeです。

  1. print(arr.itemsize)
8

itemsizeは配列内の要素一つあたりのバイト数を持つプロパティです。dtypeがデフォルトではint64であるため要素一つあたりのバイト数は8バイトとなります。ちなみに補足ですが、1バイトは8ビットです。dtypeは単位がビットであるため「64 ÷ 8 = 8byte」となります。

では続いてnbytesです。

  1. print(arr.nbytes)
24

nbytesは配列全体のバイト数を持つプロパティです。要素数が3、要素当たりのバイト数が8であるため3 × 8でnbytesは24となります。

解説は以上となります。
では練習問題にチャレンジしてみましょう。

Lesson1

arrの要素1つあたりのバイト数は8バイトです。この要素1つあたりのバイト数を4バイトに変更し、変更したバイト数の値を出力してください。

Lesson2

arrの配列全体のバイト数は40バイトです。この配列全体のバイト数を10バイトに変更し、変更した配列全体のバイト数出力してください。

Last updated:2019/10/16

4
10
バイト数を変更するにはastype()メソッドを使用します。

1バイトは8ビットです。
  1. import numpy as np

  2. arr = np.array([1, 2, 3, 4, 5])

  3. # arrの要素1つあたりのバイト数を4バイトに変更し、変更したバイト数の値を出力してください。

  4. arr2 = arr.astype("int32")
  5. print(arr2.itemsize)

  6. # arrの配列全体のバイト数を10バイトに変更し、変更した配列全体のバイト数出力してください。

  7. arr3 = arr.astype("int16")
  8. print(arr3.nbytes)
main.py
設定
g
n
i
d
a
o
L