AI実装検定B級 ⑤ NumPy

数値計算ライブラリNumPyを扱う分野です(35問収録)。import numpy as npという慣例的な記法から、array関数による配列生成、zeros・ones・full・arange・linspace・eyeといった配列作成関数、乱数(rand・normal)を押さえます。dot関数や@による行列の積、ndim・shape・sizeなどの属性、reshapeやview・copy、concatenateによる連結(axis指定)、要素ごとのブロードキャスト演算、sum・max・mean・minの集約とaxisの向き、マスク処理による条件抽出も頻出です。関数名と役割を正確に区別できるよう、実際にコードを書いて確認しましょう。

この分野の問題35問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

147NumPyにおいて、数値計算で効率的に配列の計算を行うためのライブラリをインポートする標準的な記法として、最も適切なものはどれか。

  1. Aimport numpy as np
  2. Bimport np as numpy
  3. Cimport numpy as array
  4. Dimport numpy as matrix
正解と解説を見る

正解:Aimport numpy as np

NumPyをインポートする際は慣例的に「as np」という略称を用いる。

この問題の解説ページを開く →

148np.array([1,2,3])のように、NumPyの配列を生成する関数として正しいものはどれか。

  1. Amatrix関数
  2. Barray関数
  3. Cvector関数
  4. Dlist関数
正解と解説を見る

正解:Barray関数

NumPyで配列を作成するにはarray関数を使用する。

この問題の解説ページを開く →

149NumPyにおける2行3列の配列 [[1,7,3],[2,0,5]] を作成するための正しいコードはどれか。

  1. Anp.array([1,7,3],[2,0,5])
  2. Bnp.array([1,7,3;2,0,5])
  3. Cnp.array([[1,7,3],[2,0,5]])
  4. Dnp.array([[1,7,3]],[[2,0,5]])
正解と解説を見る

正解:Cnp.array([[1,7,3],[2,0,5]])

2行以上の配列を作成する場合は各行を[]で囲み、全体をさらに[]で囲んで指定する。

この問題の解説ページを開く →

150NumPyにおいて、行列Aと行列Bの積を求める正しい記述はどれか。

  1. Amultiply(B)
  2. Btimes(B)
  3. Cproduct(B)
  4. Ddot(B)
正解と解説を見る

正解:Ddot(B)

行列の積にはdot関数を使用する。

この問題の解説ページを開く →

151NumPyにおいて、Pythonのバージョンが3.5以降の場合、行列Aと行列Bの積をA@Bと記述して計算することは可能か。

  1. A可能である
  2. B不可能である
  3. C3.0以降なら可能
  4. D配列が1次元の時のみ可能
正解と解説を見る

正解:A可能である

Python3.5以降は@記号で行列の積を計算できる。

この問題の解説ページを開く →

152np.zeros(5)を実行した際に生成される配列の要素の型(dtype)はデフォルトで何か。

  1. A整数
  2. B浮動小数点
  3. C文字列
  4. Dブール値
正解と解説を見る

正解:B浮動小数点

dtypeを指定しない場合、np.zerosは浮動小数点で配列を生成する。

この問題の解説ページを開く →

153np.zeros((3,5), dtype=int)を実行した際に生成される配列の説明として正しいものはどれか。

  1. A5行3列の整数0で埋められた配列
  2. B3行5列の整数1で埋められた配列
  3. C3行5列の整数0で埋められた配列
  4. D5行3列の整数1で埋められた配列
正解と解説を見る

正解:C3行5列の整数0で埋められた配列

np.zerosは0で埋められた配列を生成し、dtype=intで整数型を指定できる。

この問題の解説ページを開く →

154np.ones((3,5))を実行した際に生成される配列の特徴として正しいものはどれか。

  1. A配列全体が0で埋められる
  2. B配列全体が3で埋められる
  3. C配列全体が5で埋められる
  4. D配列全体が1で埋められる
正解と解説を見る

正解:D配列全体が1で埋められる

np.onesは配列全体を1で生成する関数である。

この問題の解説ページを開く →

155np.full((3,4), 3.14)を実行した際に生成される配列の説明として正しいものはどれか。

  1. A3行4列のすべてが3.14の配列
  2. B4行3列のすべてが3.14の配列
  3. C3行4列のすべてが3の配列
  4. D4行3列のすべてが3の配列
正解と解説を見る

正解:A3行4列のすべてが3.14の配列

np.fullは指定した数で配列全体を埋めることができる。

この問題の解説ページを開く →

156np.arange(0, 20, 3)の実行結果として正しい配列はどれか。

  1. Aarray([0, 3, 6, 9, 12, 15])
  2. Barray([0, 3, 6, 9, 12, 15, 18])
  3. Carray([3, 6, 9, 12, 15, 18, 21])
  4. Darray([0, 3, 6, 9, 12, 15, 18, 21])
正解と解説を見る

正解:Barray([0, 3, 6, 9, 12, 15, 18])

arange(start, stop, step)は指定した範囲内でstepずつ増加する配列を作成し、stop値は含まない。

この問題の解説ページを開く →

157np.linspace(0, 1, 5)によって生成される配列の要素数はいくつか。

  1. A4個
  2. B1個
  3. C5個
  4. D6個
正解と解説を見る

正解:C5個

linspaceの第3引数は要素の数を指定する。

この問題の解説ページを開く →

158np.random.rand(3, 4)とnp.random.normal(0, 1, (3, 4))の説明として、正しい組み合わせはどれか。

  1. A正規分布に基づく乱数と一様乱数
  2. B両方とも一様乱数
  3. C両方とも正規分布に基づく乱数
  4. D一様乱数と正規分布に基づく乱数
正解と解説を見る

正解:D一様乱数と正規分布に基づく乱数

random.randは0から1の範囲で一様乱数を生成し、random.normalは正規分布に基づく乱数を生成する。

この問題の解説ページを開く →

1594次単位行列を生成するための正しいNumPyのコードはどれか。

  1. Anp.eye(4)
  2. Bnp.unit(4)
  3. Cnp.array(4)
  4. Dnp.zeros(4,4)
正解と解説を見る

正解:Anp.eye(4)

np.eye(n)はn次の単位行列を生成する関数である。

この問題の解説ページを開く →

160np.eye(5) * 3 と記述した場合の結果として正しいものはどれか。

  1. A全成分が3の5次配列
  2. B対角成分が3の5次配列
  3. C対角成分が1の5次単位行列
  4. D行列全体が3倍に拡大されるが対角成分は1のまま
正解と解説を見る

正解:B対角成分が3の5次配列

単位行列に対してアスタリスクを用いることで実数倍を表せる。

この問題の解説ページを開く →

161配列の次元数を確認するためのプロパティはどれか。

  1. Ashape
  2. Bsize
  3. Cndim
  4. Ddtype
正解と解説を見る

正解:Cndim

ndimは配列の次元数を返すプロパティである。

この問題の解説ページを開く →

162配列の形状(何行何列かなど)を確認するためのプロパティはどれか。

  1. Andim
  2. Bsize
  3. Cdtype
  4. Dshape
正解と解説を見る

正解:Dshape

shapeは配列の形状をタプルで返すプロパティである。

この問題の解説ページを開く →

163配列に含まれる要素の総数を確認するためのプロパティはどれか。

  1. Asize
  2. Bshape
  3. Cndim
  4. Dlen
正解と解説を見る

正解:Asize

sizeは配列内の要素の総数を返す。

この問題の解説ページを開く →

164np.random.randint(10, size=(3, 4))によって作成された配列x2に対して、x2[2, 1]が指し示す要素の位置はどこか。

  1. A2行目の3列目
  2. B3行目の2列目
  3. C3行目の1列目
  4. D2行目の2列目
正解と解説を見る

正解:B3行目の2列目

インデックスは0から始まるため、[2,1]は3行目の2列目を指す。

この問題の解説ページを開く →

165配列の一部をまとめて取り出す際に使用する、元の配列とメモリを共有する機能はどれか。

  1. Acopy
  2. Breshape
  3. Cview
  4. Dconcatenate
正解と解説を見る

正解:Cview

viewは配列の一部を取り出す際に元の配列とメモリを共有する操作を行う。

この問題の解説ページを開く →

166元の配列と関連付けずに、メモリを新たに確保して配列の一部を取り出す機能はどれか。

  1. Aview
  2. Breshape
  3. Cconcatenate
  4. Dcopy
正解と解説を見る

正解:Dcopy

copyを用いると元の配列と関連付けられず、独立した配列として扱える。

この問題の解説ページを開く →

1671×9の配列を3×3の配列に変更する際に使用する関数はどれか。

  1. Areshape
  2. Bresize
  3. Cshape
  4. Dtransform
正解と解説を見る

正解:Areshape

reshapeは配列の要素数を変えずに形状を変更する関数である。

この問題の解説ページを開く →

168np.concatenate([x, y]) で2つの1次元配列を連結すると、どのように結合されるか。

  1. A既存の1次元の軸に沿って1本につながる
  2. B2次元の行列になる
  3. C要素ごとに足し算される
  4. D対角線上に並ぶ
正解と解説を見る

正解:A既存の1次元の軸に沿って1本につながる

1次元配列同士のconcatenateは既存の軸に沿って1本の配列に連結される。

この問題の解説ページを開く →

169np.concatenate([grid1, grid2], axis=0)を実行した場合、どのような連結が行われるか。

  1. A横方向(列方向)に連結
  2. B行列の積になる
  3. C縦方向(行方向)に連結
  4. D要素の平均値が計算される
正解と解説を見る

正解:C縦方向(行方向)に連結

axis=0は行方向(縦)の連結を指定する。

この問題の解説ページを開く →

170np.concatenate([grid1, grid2], axis=1)を実行した場合、どのような連結が行われるか。

  1. A縦方向(行方向)に連結
  2. B行列の積になる
  3. C要素の合計値が計算される
  4. D横方向(列方向)に連結
正解と解説を見る

正解:D横方向(列方向)に連結

axis=1は列方向(横)の連結を指定する。

この問題の解説ページを開く →

171np.arange(5)で作成した配列xに対し、x + 3 を実行した際の結果として正しいものはどれか。

  1. Aすべての要素に3が足される
  2. B配列の末尾に3が追加される
  3. Cエラーになる
  4. D配列の各要素が3倍される
正解と解説を見る

正解:Aすべての要素に3が足される

NumPy配列に数値を足すと、すべての要素にその値が加算される。

この問題の解説ページを開く →

172np.arange(5)で作成した配列xに対し、x * 2 を実行した際の結果として正しいものはどれか。

  1. A配列の各要素に2が足される
  2. Bすべての要素が2倍される
  3. C配列が2回繰り返される
  4. Dエラーになる
正解と解説を見る

正解:Bすべての要素が2倍される

NumPy配列に数値を掛けると、すべての要素がその値で倍増される。

この問題の解説ページを開く →

17310 // 3 を計算した結果として正しいものはどれか。

  1. A3.33
  2. B1
  3. C3
  4. D3.3
正解と解説を見る

正解:C3

//は割り算の商を求める演算子である。

この問題の解説ページを開く →

17410 % 3 を計算した結果として正しいものはどれか。

  1. A3
  2. B0.3
  3. C3.1
  4. D1
正解と解説を見る

正解:D1

%は割り算の余りを求める演算子である。

この問題の解説ページを開く →

175配列の各要素を3乗にするための正しい記法はどれか。

  1. Ax**3
  2. Bx^3
  3. Cx*3
  4. Dx3
正解と解説を見る

正解:Ax**3

アスタリスクを2つ並べることで累乗を表す。

この問題の解説ページを開く →

176NumPy配列の全要素の合計を求める関数はどれか。

  1. Atotal
  2. Bsum
  3. Cadd
  4. Dplus
正解と解説を見る

正解:Bsum

sum関数を用いると配列内の全要素の合計値が得られる。

この問題の解説ページを開く →

177NumPy配列の全要素の最大値を求める関数はどれか。

  1. Amaximum
  2. Blarge
  3. Cmax
  4. Dhighest
正解と解説を見る

正解:Cmax

max関数を用いると配列内の最大値が得られる。

この問題の解説ページを開く →

178NumPy配列において、マスク機能(x[x>2])を用いて条件抽出を行った場合、どのような結果が返されるか。

  1. ATrueまたはFalseの配列
  2. B条件を満たす要素の数
  3. C元の配列のコピー
  4. D条件を満たす要素のみが抽出された配列
正解と解説を見る

正解:D条件を満たす要素のみが抽出された配列

マスク処理を用いることで、指定条件を満たす要素のみを取り出すことができる。

この問題の解説ページを開く →

179NumPy配列の算術平均を求める最も基本的な関数はどれか。

  1. Amean
  2. Bstd
  3. Cmedian
  4. Dsum
正解と解説を見る

正解:Amean

mean関数は配列の算術平均を求める最も基本的な関数である。

この問題の解説ページを開く →

1802次元配列において、axis=0を指定してsum関数を用いた場合、どのような計算が行われるか。

  1. A行(横方向)ごとの合計
  2. B列(縦方向)ごとの合計
  3. C全要素の合計
  4. D対角成分の合計
正解と解説を見る

正解:B列(縦方向)ごとの合計

axis=0は縦方向の集約を指定する。

この問題の解説ページを開く →

1812次元配列において、axis=1を指定してmin関数を用いた場合、どのような計算が行われるか。

  1. A列(縦方向)ごとの最小値
  2. B全要素の最小値
  3. C行(横方向)ごとの最小値
  4. D条件に合う最小値
正解と解説を見る

正解:C行(横方向)ごとの最小値

axis=1は横方向の集約を指定する。

この問題の解説ページを開く →
AI実装検定B級の全分野一覧へ戻る