Python NumPy初心者向け使い方

Python NumPy初心者向け使い方

pythonを用いると必ず出てくるnumpy
いったい何なのでしょうか。
下記サイトには次のような記述があります。

What is NuumPy?

NumPy is the fundamental package for scientific computing in Python. It is a Python library that provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.

早い話が配列を作成するライブラリです。
ただリストとは違いデータ型は1種類のみです。
つまり[1,2,3,4,5]や[“a”,”b”,”c”,”d”]はよいが
[1,”a”,2,”b”,3]のような配列は文字型となってしまいます。
それによって計算能力を高めているという特徴があります。
※実行環境:Python 3.8.8 win10 64bit

もくじ

  1. 配列の作成
  2. 要素を追加する
  3. 要素を削除する
  4. 要素の参照
  5. 四則演算
  6. ユニバーサル関数

1.配列の作成

import numpy as np
numpyをインポートします。
as npとすることでnumpy を npで利用できるようになります。

a = np.array([1,2,3,4,5])によってnumpy配列を作成できます。
※array()は配列を作成する関数です。
配列のデータ型を確認します。
print(type(a))
配列要素のデータ型も調べてみましょう。
print(a.dtype)



文字列型も作ってみましょう。
b = np.array([“apple”,”beach”,”cook”,”do”])
print(type(b))
print(b.dtype)

文字列の場合<Uです。
後ろの数字は文字列の最大文字数となっています。

浮動小数はどうなるでしょう。
c = np.array([1.0,2.34,3.0,4.11,5.0])
print(type(c))
print(c.dtype)

float64 これが浮動小数の場合のデフォルトのデータ型となります。

a = np.array([1,2,3,4,5]
print(a.dtype)

int32でも問題はないのですが
小さいデータでもint32になりますのでメモリを無駄にする可能性があります。
dtype = np.データ型としてデータ型を指定できます。

a = np.array([1,2,3,4,5],dtype = np.int16)
print(type(a))
print(a.dtype)

つまり16ビットとして扱うことになります。
2の16乗で65536通りの値を識別できます。


arange()も利用することができます。
d = np.arange(0,10)
print(d)



2次元配列をつくることもできます。
e = np.array([[1,2,3],[4,5,6]])
print(e)
print(e.shape)

(2,3)から2行3列であることがわかります。

2.要素を追加する

f = np.array([1,2,3])
f = np.append(f,4)
print(f)

appendは末端に追加します。
場所を指定したい場合はnp.insert()です。

f = np.array([1,2,3])
f = np.insert(f,0,0)
print(f)

0列目に0を入力しました。
それでは5を2列目に入力してみましょう。
f = np.insert(f,2,5)
print(f)



多次元配列に追加する場合です。
g = np.array([[1,2,3],[4,5,6],[7,8,9]])
1行目にh = [0,0,0]を入力します。

g = np.insert(g,1,h,0)
print(g)

2つ目の引数の1は1行目を意味します。
4つ目の0は行追加を意味して、1にすると列追加となります。

g = np.array([[1,2,3],[4,5,6],[7,8,9]])
h = [0,0,0]
g = np.insert(g,1,h,1)
print(g)


3.要素を削除する

np.deleteを用います。
i = np.arange(0,5)
print(i)
i = np.delete(i,0)
print(i)


多次元配列の削除をおこないます。
g = [[1,2,3],[4,5,6],[7,8,9]]
g = np.delete(g,0,0)
print(g)
3つ目の引数0は行削除を意味します。


3つ目の引数を1とすると列削除になります。
g = [[1,2,3],[4,5,6],[7,8,9]]
g = np.delete(g,0,1)
print(g)


4.要素の参照

j = np.array([“apple”,”orange”,”grapes”])
要素番号の指定で参照できます。
print(j[0])



では多次元での参照をおこないます。
j = np.array([[“apple”,”orange”,”grapes”],[“baseball”,”soccer”,”tennis”]])
print(j[0,1])
print(j[1,2])


5.四則演算

ndarrayでは四則演算が可能です。
k = np.array([1,2,3])
print(k +1)
print(k -1)
print(k *2)
print(k / 2)



また配列同士を演算することもできます。
k = np.array([1,2,3])
l = np.array([4,5,6])
print(k + l)



多次元配列の場合です。
m = np.array([[1,2,3],[4,5,6]])
n = np.array([[2,2,2],[2,2,2]])
print(m + n)
print(m * n)


6.ユニバーサル関数

全要素に対して計算処理を適用できる関数をユニバーサル関数と呼びます。
適当に配列をまず作ります。
o = np.array([1.23,3.98,4.556,3.0,9.5])
print(o)

この配列に対して全要素に切り捨てを行います。
o = np.floor(o)
print(o)

切り上げ、四捨五入も可能です。
o = np.array([1.23,3.98,4.556,3.0,9.5])
p = np.ceil(o) ※切り上げ
print(p)
q = np.round(o) ※四捨五入
print(q)