【NumPy 一問一答】統計学を学ぶにあたって知っておくと良いNumPyの用法

NumPyは行列の演算に関して取り扱うライブラリであり、統計学に関するプログラムの作成を行う際によく用います。使用方法の詳細に関しては都度調べれば十分である一方で基本的な用法に関しては抑えておくと良いので、当記事ではNumPyの抑えておきたい用法について一問一答形式でまとめました。

・プログラム集まとめ
https://www.hello-statisticians.com/stat_program

基本事項の確認

リスト形式

Pythonでベクトル・行列などの多次元配列を取り扱うにあたっては主にリスト・タプル・辞書の$3$つの形式があるが、当項ではリスト形式に関して確認を行う。

ライブラリの読み込み

解答$1$つ$1$つでライブラリの読み込みを行うと冗長であるので、以下を実行した上でそれぞれの解答のプログラムを実行する必要がある。

import numpy as np

一問一答

$1$次元配列の生成

Q.1-1-1 リストからの作成

x_ = [1, 2, 3, 4, 5]

上記のように与えられたリストx_NumPyの形式に変換せよ。

・解答

x = np.array(x_)

print(x)
print(type(x_))
print(type(x))

・実行結果

> print(x)
[1 2 3 4 5]
> print(type(x_)
<type 'list'>
> print(type(x))
<type 'numpy.ndarray'>

Q.1-1-2 np.arangeの用法

np.arangeを用いて0.1, 0.2, 0.3, ..., 7.9, 8.0を要素に持つ$1$次元配列を作成せよ。

・解答

x = np.arange(0.1, 8.1, 0.1)

print(x)

・実行結果

> print(x)
[ 0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4  1.5
  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9  3.
  3.1  3.2  3.3  3.4  3.5  3.6  3.7  3.8  3.9  4.   4.1  4.2  4.3  4.4  4.5
  4.6  4.7  4.8  4.9  5.   5.1  5.2  5.3  5.4  5.5  5.6  5.7  5.8  5.9  6.
  6.1  6.2  6.3  6.4  6.5  6.6  6.7  6.8  6.9  7.   7.1  7.2  7.3  7.4  7.5
  7.6  7.7  7.8  7.9  8. ]

Q.1-1-3 np.linspaceの用法

np.linspaceを用いて$0$から$\pi$までに等間隔で$20$個の要素が並ぶ配列を作成せよ。

・解答

x = np.linspace(0., np.pi, 20)

print(x)

・実行結果

> print(x)
[ 0.          0.16534698  0.33069396  0.49604095  0.66138793  0.82673491
  0.99208189  1.15742887  1.32277585  1.48812284  1.65346982  1.8188168
  1.98416378  2.14951076  2.31485774  2.48020473  2.64555171  2.81089869
  2.97624567  3.14159265]

Q.1-1-4 np.onesの用法

np.onesを用いて$20$個の$1$の要素が並ぶ配列を作成せよ。

・解答

x = np.ones(20)

print(x)

・実行結果

[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.
  1.  1.]

Q.1-1-5 np.zerosの用法

np.zerosを用いて$20$個の$0$の要素が並ぶ配列を作成せよ。

・解答

x = np.zeros(20)

print(x)

・実行結果

[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.]

「【NumPy 一問一答】統計学を学ぶにあたって知っておくと良いNumPyの用法」への1件の返信

コメントは受け付けていません。