Numpy数値計算---PyCharm(python)


Numpyの概要
Numpyはデータ科学計算に用いられる基礎であり,科学計算タスクを遂行できるだけでなく,効率的な多次元データコンテナとしても用いられる.大きなマトリクスを格納および処理するために使用します.Pythonはlistとは異なり、数値を直接保存するarrayモジュールを提供していますが、Pythonのarrayモジュールは多次元をサポートしていないため、様々な演算関数もありません.Numpyはこの遺憾を補った.Numpyは、単一のデータ型を格納する多次元配列であるndarray(以下、配列と総称する)を提供する.
配列オブジェクト
ndim:intを返し、配列を表す次元shape:tupleを返し、配列のサイズを表し、n行m列の行列に対して形状は(n,m)size:intを返し、配列要素の総数を表し、配列形状の積dtypeに等しい:data-typeを返し、配列中の要素のタイプitemsizeを記述する:intを返し、配列を表す各要素のサイズ(バイト単位)
配列オブジェクトの作成
numpy.Array(object,dtype=None,copy=True,order=‘K’,subok=False,ndmin=0)object:arrayを受信し、作成したい配列を表し、デフォルトdtypeなし:data-typeを受信し、配列に必要なデータ型を表し、指定しない場合はオブジェクトの保存に必要な最小タイプを選択し、デフォルトはNone ndmin:intを受信し、生成配列が持つべき最小次元数を指定します.デフォルトはNone
配列の作成----配列のプロパティ
「numpy-科学コンピューティングライブラリ構造コア:ndarrayオブジェクト:多次元配列を格納する単一データ型メモリは、連続する2つのストレージスタイルです.Cスタイル-C言語スタイル--行別優先格納Fスタイル-fortran言語スタイル--列別優先格納」
import numpy as np#Numpyライブラリのインポート
リストを配列に変換
arr = np.array([1, 2, 3, 4]) arr = np.array([[1, 2, 3, 4], [5, 6, 7, 0]]) arr = np.Array([1,2,3,4],[5,6,7,0],[[1,2,3,4],[5,6,7,0]]])print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
ndarrayオブジェクトプロパティ
ndim shape size dtype itemsize print(「arrの次元:」,arr.ndim)print(「arrの形状:」,arr.shape)print(「arrの要素の個数:」,arr.size)print(「arrの要素のタイプ:」,arr.dtype)print(「arrの各要素のサイズ:」,arr.itemsize)
import numpy as np
配列の作成
リストを使用して配列を変換するには
arr = np.array([1,2,3,4])print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
arangeを使用して配列を作成するには
パラメータ1開始位置パラメータ2終了位置(終了位置を含まない)パラメータ3ステップ
開始が0、切歩長が1の場合、開始と歩長は省略できます
arr = np.arange(0,5,1)
arr = np.arang(5)print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
等差配列の作成
パラメータ1開始位置パラメータ2終了位置(終了位置を含む)パラメータ3生成配列の要素個数
arr = np.linspace(0,5,4)print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
等比配列の作成
パラメータ1開始値パラメータ2終了値パラメータ3生成配列の要素個数
パラメータbase--デフォルトは10、生成10^開始、10^終了の等比配列
arr = np.logspace(0,2,3,base=4)print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
要素がすべて0の配列を作成
パラメータ生成配列の形状
arr = np.zeros(shape=(2,2))print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
すべて1の配列を作成
arr = np.ones(shape=(2,2)) print(“arr:”,arr)
diag--対角行列に似た配列を作成します
# arr = np.diag(v=[1,2,3,4],k=0)
# arr = np.diag(v=[1,2,3,4],k=1)
# arr = np.diag(v=[1,2,3,4],k=-1)

vが1次元の場合
k=0の場合、与えられたvは対角位置にある
k>0のとき、与えられたvは反対角に沿ってk個の位置を上方に移動する
k<0のとき、与えられたvは反対角に沿ってk個の位置を下に移動する
# x=2
# x = np.array(x)
# print("x:
",x) # arr = np.diag(v=x, k=0) # arr = np.diag(v=x, k=1) # arr = np.diag(v=x, k=-1) # arr = np.diag(v=x, k=5) # arr = np.diag(v=[[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[1, 2, 3], [4, 5, 6], [7, 8, 9]]], k=5) # ,v 2 # v 2 # k=0, v # k>0, k # k<0, k # print("arr:
", arr) # print("arr :
", type(arr))

eye-単位行列に似た配列を作成します.
arr = np.eye(N=2)
Nのみを送信すると、N行、N列の単位行列の配列が作成されます.
# arr = np.eye(N=2,M=3)

NMが等しくない場合は、小さな単位行列配列を作成してから、複数の行、または複数の列の位置で0を補う
# arr = np.eye(N=3,M=2)
# arr = np.eye(N=3,M=2,k=0)
# arr = np.eye(N=3,M=2,k=-1)

kはdiagのkを参考にして理解できます
# print("arr:
", arr) # print("arr :
", type(arr))

ランダム配列の作成
# rand   random_sample  random    

[0,1]の間の乱数で均一に分布する小数配列を作成します.
パラメータは、配列を生成する要素の個数であってもよいし、配列を生成する行列の数であってもよい
# arr = np.random.rand(10)
# arr = np.random.rand(2,2,3)
# arr = np.random.rand((2,3)) #    ,       
# print("arr:
", arr) # print("arr :
", type(arr))

標準正規分布に適合する配列を作成するには
同standard_normal同様
パラメータは、要素の個数であってもよいし、配列を生成する行列の数であってもよいし、形状であってもよい
arr = np.random.randn(2,3)print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
ランダム整数配列の生成
[low,high]の配列を生成する
sizeは、要素の個数であってもよいし、配列を生成する形状であってもよい
arr = np.random.randint(low=0,high=1,size=10) arr = np.random.randint(low=0,high=1,size=(2,3)) arr = np.random.randint(low=0,high=1,size=[2,3])print(「arr:」,arr)print(「arrのタイプ:」,type(arr))
指定範囲内のランダム小数の均一配列を生成
[low,high]の指定範囲のランダム均一分布の小数を生成する
size--配列可能な要素の個数-配列の形状であってもよい
arr = np.random.uniform(low=1,high=10,size=(5,5))print(「arr:」,arr)print(「arrのタイプ:」,type(arr))