2.科学計算ツールNumpy

5383 ワード

1.numpy概要
Numpy:Pythonで科学計算を行うベースライブラリを提供し、数値計算に重点を置き、主に多次元配列(マトリクス)処理に使用されるライブラリを提供します.大きなマトリクスを格納して処理するために使用され、Python自体のネストされたリスト構造よりも効率的です.それ自体はC言語で開発され、基礎的な拡張であり、Pythonの残りの科学計算の拡張の大部分はこれを基礎としている.高性能科学計算とデータ分析の基礎パッケージndarray、多次元配列(マトリクス)、ベクトル演算能力、高速、省スペース
2.ndarray配列の作成
NumPy配列は、ndarrayと呼ばれる多次元配列オブジェクト(行列)であり、ベクトル演算能力を持ち、実行速度が速く、空間を節約するという特徴がある.注意:ndarrayの下付き文字は0から始まり、配列内のすべての要素は同じタイプでなければなりません.
2.1 ndarrayプロパティ
ndimプロパティ:次元個数shapeプロパティ:次元サイズdtypeプロパティ:データ型
2.2 ndarrayのランダム作成
ランダムサンプリング(numpy.random)によりランダムデータを生成する.
np.random.rand()
ランダムサンプルは[0,1]にありrand固定区間0.0~1.0
arr1 = np.random.rand(3,4) # 3*4,0-1
print(arr1)
a = 3
print(arr1.ndim) #   
print(arr1.shape) #     
print(arr1.dtype) #     
######################    #########################
[[ 0.8304427   0.28691753  0.49540239  0.81833986]
 [ 0.67167216  0.07743172  0.02851783  0.1204921 ]
 [ 0.21615523  0.88841313  0.06086932  0.0161961 ]]
2
(3, 4)
float64
#####################################################

np.random.randn()
ランダムサンプルは、標準正規分布から1つ以上のサンプル値を返します.
arr2 = np.random.randn(3,4,5)
print(arr2)
print(arr2.ndim)
print(arr2.shape)
###########################    ##############################
[[[-0.53048525 -0.98315123  1.07899734  1.00916922 -1.43343381]
  [ 0.16614765 -2.04573639  0.69389559 -1.03237277  0.55933928]
  [-1.83031415 -1.06860538  0.54219642 -1.07381001  0.04935296]
  [ 0.23682127 -0.31775132 -0.00994159 -0.20292605  1.30770046]]

 [[ 0.10626402  1.01778731 -1.53680091  0.76804688  0.27078436]
  [-0.43091204  1.47209429  0.80118083 -2.0614604  -0.5506007 ]
  [ 1.44773308 -2.14104747 -0.95519316 -0.83441982 -0.31901006]
  [ 0.10257071 -0.42335524 -0.01249585 -1.47530282 -1.1789874 ]]

 [[ 0.27786974 -0.93659983  0.44406388  0.01835018  1.11760644]
  [ 1.68107332 -1.88498173  0.69610999  1.4677356   2.95709668]
  [-2.16621502  1.09556328 -0.5359436   2.01755611 -1.00161595]
  [ 0.41419144 -0.74623465  0.13370128 -0.01935085 -1.03277491]]]
3
(3, 4, 5)
#################################################################

np.random.randint()メソッドの使用
指定次元サイズ(3行4列)のランダム多次元整数データ(2次元)を生成し、randint指定区間-2~5
arr3 = np.random.randint(-2,6,(3,4))
print(arr3)
print(arr3.dtype)
#######################    ##########################
[[ 0  1  5  3]
 [ 4  0  1  4]
 [ 0 -2  5  1]]
int32
#########################################################

np.random. uniform()メソッドの使用
指定した次元サイズ(4行5列)のランダム多次元浮動小数点型データ(2 D)を生成し、uniform()は区間(-3,2)を指定できます.
#          ndarray
arr4 = np.random.uniform(-3,3,size=(4,5))
print(arr4)
print(arr4.dtype)
##########################    #############################
[[ 0.39471789  1.80044462 -1.2432487   2.72737276  0.63235806]
 [-1.15296166 -2.43829749 -1.6658063  -0.144205    0.04610753]
 [ 0.32108255 -2.77588426 -1.50920274  0.24233935  2.67571127]
 [ 1.06973439 -0.4995566   2.79207931 -1.14324029 -2.48195469]]
float64
###############################################################

2.3 ndarrayのシーケンス作成
np.zeros()
サイズの全0配列を指定します.注:最初のパラメータは、(3,4)などのサイズを指定するメタグループです.
print(np.zeros((3,4)))
print(np.zeros((3,4)).dtype)
print(type(np.zeros((3,4))))
##########################    #############################
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]
float64

###############################################################

np.ones()
サイズの全1配列を指定します.注:最初のパラメータは、(3,5)などのサイズを指定するメタグループです.
print(np.ones((3,5)))
##########################    #############################
[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]
###############################################################

np.empty()
初期化配列は、常に全0を返すのではなく、初期のランダム値(メモリ内のランダム値)を返す場合があります.
print(np.empty((4,5)))
##########################    #############################
[[ 0.39471789  1.80044462  1.2432487   2.72737276  0.63235806]
 [ 1.15296166  2.43829749  1.6658063   0.144205    0.04610753]
 [ 0.32108255  2.77588426  1.50920274  0.24233935  2.67571127]
 [ 1.06973439  0.4995566   2.79207931  1.14324029  2.48195469]]
###############################################################

ndarrayのシーケンス作成
arr8 = np.arange(15) #         
print(arr8)
##########################    #############################
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
###############################################################
arr9 = arr8.reshape(3,5) #   3 5   
print(arr9)
##########################    #############################
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
###############################################################

2.4 dtypeパラメータ
arr12 = np.zeros((3,5),dtype=np.int64)
print(arr12)
print(arr12.dtype)
##########################    #############################
[[0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]
int64
###############################################################

2.5配列データ型の変換astype()
arr13 = arr12.astype(np.float32)
print(arr13)
print(arr13.dtype)
##########################    #############################
[[ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]]
float32
###############################################################