Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

Numpy(Pythonの科学技術計算ライブラリ)で配列を扱う

こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。

 

 今回は、Pythonの科学技術計算ライブラリであるNumpyで配列を扱ってみます。

https://numpy.org/

 

 

 

事前準備

Python環境とNumpyがインストールされている必要がありますので、インストールからする方は以下の記事を参考にインストールをおこなってください。

Homebrew & Python3(pip3)インストール on MacOS High Sierra - Opensourcetechブログ

AIを学ぶ1 〜Numpy & Matplotlib (Python) 編〜 - Opensourcetechブログ

 

 

配列の定義

まずは、配列の定義から始めます。

「X」と「Y」という2つの 2×3の配列を定義します。

bash-3.2$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> X = np.array([[1,2,3],[4,5,6]])
>>> print(X)
[[1 2 3]
[4 5 6]]
>>> Y = np.array([[2,3,4],[5,6,7]])
>>> print(Y)
[[2 3 4]
[5 6 7]]

 

 

配列同士の四則演算

続いて、配列同士の四則演算を行います。

>>> X+Y
array([[ 3, 5, 7],
[ 9, 11, 13]])
>>> X-Y
array([[-1, -1, -1],
[-1, -1, -1]])
>>> X*Y
array([[ 2, 6, 12],
[20, 30, 42]])
>>> X/Y
array([[0.5 , 0.66666667, 0.75 ],
[0.8 , 0.83333333, 0.85714286]])

 

 

配列の四則演算

続いて、配列の四則演算を行います。

>>> X+2
array([[3, 4, 5],
[6, 7, 8]])
>>> X-2
array([[-1, 0, 1],
[ 2, 3, 4]])
>>> X*2
array([[ 2, 4, 6],
[ 8, 10, 12]])
>>> X/2
array([[0.5, 1. , 1.5],
[2. , 2.5, 3. ]])

 

 

異なる次元の配列による演算

続いて、異なる次元の配列による演算を行います。

「X」は2×3の配列、「Z」は1×3の配列です。

>>> Z = np.array([100,200,300])
>>> print(Z)
[100 200 300]
>>> print(X)
[[1 2 3]
[4 5 6]]
>>> X*Z
array([[ 100, 400, 900],
[ 400, 1000, 1800]])

 

 

配列内の指定箇所のみ取得

配列内から指定した箇所のみ取得する方法です。

>>> print(X)
[[1 2 3]
[4 5 6]]
>>> X[0]・・・1行目のみ取得
array([1, 2, 3])
>>> X[1]・・・2行目のみ取得
array([4, 5, 6])
>>> X[0][0]・・・1行目かつ1列目のみ取得
1
>>> X[0][1]・・・1行目かつ2列目のみ取得
2
>>> X[0][2]・・・1行目かつ3列目のみ取得
3
>>> X[1][0]・・・2行目かつ1列目のみ取得
4
>>> X[1][1]・・・2行目かつ2列目のみ取得
5
>>> X[1][2]・・・2行目かつ3列目のみ取得
6

 

 

配列の変換など

最後は、配列の次元変換や指定条件に一致するデータのみを取得する方法です。

>>> print(X)
[[1 2 3]
[4 5 6]]
>>> X.flatten()・・・2×3 から 1×6 への変換
array([1, 2, 3, 4, 5, 6])
>>> X < 3・・・3以下のデータか判定
array([[ True, True, False],
[False, False, False]])
>>> X[X<3]・・・3以下のデータのみ取得
array([1, 2])

 

 

 

 

 

 

 

アフィリエイトのアクセストレード

 

 

 

 

 

 

www.slideshare.net

github.com

www.facebook.com

twitter.com

www.instagram.com

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

 

 

Opensourcetech by Takahiro Kujirai