Python基礎

5/9ページ
  • 2018.12.17

【NumPy】部分配列へのアクセス

配列のスライシング  Python の シーケンス と同じように、NumPy の配列 (ndarray オブジェクト) も次の構文で スライシング して部分配列を抽出することができます。  x[start=0 : stop=size : step=1]  start には開始インデックス、stop には終了インデックス + 1 を渡します。  step は start から何個おきに要素を取り出すかという引数です。  引数はすべてオプションなので省略できます。たとえば、x[:5] は x[0:5] と等価です(インデックス 0 から 4 まで取り出すという意味です)。 # NUMPY_SLIC […]

  • 2018.12.16

【NumPy】ブール配列とマスキング操作

ブール配列とマスキング操作  NumPy の配列オブジェクトに対して比較演算子を用いると、ブール配列 (Boolean array) が生成されます。 # NUMPY_BOOLEAN # In[1] import numpy as np # 1次元配列を定義 x = np.array([1, 2, 3, 4, 5]) print(x > 3) # [False False False True True]  このコードでは、1 次元配列 x の各要素について、3 より大きい場合は True, そうでない場合は False という要素で対応付けしたブール配列を生成しています。NumPy の配列に […]

  • 2018.12.15

【NumPy】dtype (Data type)

NumPy のデータ型 (dtype)  NumPy には Python 本体に比べて遥かに多くの種類のデータ型 (Data type) が組込まれています。 NumPy データ型 説明 bool_ ブール型 (True または False), 1 byte に格納 int_ デフォルト整数型 (int64 または int32) intc C言語と同じ整数型 (int64 または int32) intp インデックス用整数 (C 言語の ssize_t, int64 または int32) int8 バイト (-128 ~ 127) int16 整数型 (-32768 to 32767) int […]

  • 2018.12.14

【NumPy】ブロードキャスト

【NumPy】ブロードキャスト  配列の演算規則の記事で解説したように、配列に 1 を加えると、配列のすべての要素に 1 を加えるという処理が行われます。 # NUMPY_BROADCASTING # In[1] import numpy as np # 1次元配列の定義 x = np.array([10, 20, 30]) # 配列の各要素に1を加える print(x + 1) # [11 21 31]  これはとても便利な記法です。なぜなら、こうした記法が許されていないとすれば、配列のすべての要素に 1 を加えるためには、もう1つ別の配列を用意しなければならないからです。 # In[2] […]

  • 2018.12.14

【NumPy】concatenate, vstack, hstack, dstack, split

配列の連結  NumPy の配列を連結(結合)する関数の一覧です。 numpy.concatenate()  numpy.concatenate()を使うと、複数の配列を 連結 できます。 numpy.concatenate((a1, a2, ...), axis=0, out=None)  a1, a2, a3, ... には配列を渡します。  2 次元以上の配列を渡す場合は axis を指定できます (デフォルトは axis=0)。 # NUMPY_CONCATENATE # In[1] import numpy as np a1 = np.array([[1, 2, 3], [4, 5, […]

  • 2018.12.13

【NumPy】配列の形状変更

配列の形状変更  NumPy 配列を形状変更するメソッドや関数の一覧です。 ndarray.reshape()  ndarray.reshape() を使うと配列の形状を変更できます。 ndarray.reshape(shape, order='C')  shape には新しい配列の行数 m と列数 n をタプルやリスト、整数で渡します。    12要素の1次元配列を作成してから、reshape() メソッドで 3×4 の 2 次元配列に形状変更してみます。 # NDARRAY_RESHAPE # In[1] import numpy as np # 12要素の1次元配列を作成 # [1 1 […]

  • 2018.12.12

【NumPy】ユニバーサル関数

ユニバーサル関数  配列 (ndarrayオブジェクト) のすべての要素を操作して配列を返す関数を ユニバーサル関数 (universal function) とよびます。たとえば、numpy.sin() は受け取った配列のすべての要素について正弦値を計算します。 # NUMPY_UNIVERSAL # In[1] import numpy as np # 円周率 pi = np.pi # 配列の定義 x = [pi/3, pi/2, pi] print(np.sin(x)) # [8.66025404e-01 1.00000000e+00 1.22464680e-16]  すべてのユニバーサ […]

  • 2018.12.11

【NumPy】配列の演算規則

配列の演算規則  この記事では NumPy 配列 の基本的な 演算規則 を解説します。準備として 2 × 2 の配列 x を生成しておきます。 # PYTHON_NUMPY_OPERATION_RULE # In[1] import numpy as np # 2×2の配列を作成 x = np.array([[1, 2], [3, 4]]) print(x) # [[1 2] # [3 4]]  配列 (ndarrayオブジェクト) + 1 という操作は、配列の全要素に 1 を加えることを意味します。 # In[2] # 配列xに1を加える print(x + 1) # [[2 3] # [4 […]

  • 2018.12.11

【NumPy】配列の次元数(ndim)・軸(axis)・サイズ(size)

配列の次元数と軸 配列の次元数 (ndim)  NumPy の配列オブジェクト ndarray を生成するときに [] で括った数が、その配列の次元数となります。ここであらためて、NumPy における配列の次元数が何を意味するのか、図を使って直感的に説明しておきます。  まず最初に 1 次元配列について考えます。たとえば、5 個の要素をもつ配列を作成したとします。これは 0 ~ 4 のインデックス番号が割り当てられた箱のそれぞれに要素が 1 個ずつ入っているということです。今、この 1 次元配列をまとめて1つの大きな箱とみなして、青色に塗ることにします。    同様に、同じ要素数をもつ別の 1 […]

  • 2018.12.06

天井関数と床関数

天井関数  天井関数 (ceiling function) は、ある実数 $x$ に対して $x$ 以上の最大の整数を返す関数です。$\lceil x \rceil$ あるいは $\mathrm{ceil}(x)$ の記号で表されます。    Python の math.ceil(x) を使って、天井関数の戻り値を確認してみましょう。 # PYTHON_CEILING_FUNCTION # In[1] import math # 天井関数の計算例 a = math.ceil(5) b = math.ceil(3.14) c = math.ceil(-3.14) print("ceil(5):" […]

1 5 9