Python開発でのnumpyの使用

1.いくつかの点に注意してください####

第二に、numpy #####の使用
1、 ndarray #####を作成します

1 次元配列a = np.array([1、2、3])print(type(a)、a.shape、a [0]、a [1]、a [2])out:<class 'numpy.ndarray'> (3、)1 2 3#再割り当てa [0] = 5 print(a)out:[5 2 3]#2次元配列b = np.array([[1,2,3]、[4,5 、6]])print(b)out:[[1 2 3] [4 5 6]] print(b [0、0]、b [0、1]、b [1、0])out:1 2 4

python

# すべて0の2x2配列を作成します
a = np.zeros((2,2))print(a)

out:[[0.0.][0.0.]]

 # すべてのものの1x2配列を作成します
b = np.ones((1,2))print(b)

out:[[1.1.]]

# 値が7の2x2配列を作成します
c = np.full((2,2),7)print(c)

out:[[77][77]]

# 2x2 IDマトリックスを作成します(対角要素は1です)
d = np.eye(2)print(d)

out:[[1.0.][0.1.]]

# 10の対角線を作成します,20,30,50の対角行列
d_1 = np.diag([10,20,30,50])print(d_1)

out:[[10000][02000][00300][00050]]

# 1次元の0を作成します-14の配列
e = np.arange(15)print(e)

out:[01234567891011121314]

# 一次元の4を作成します-9の配列
e_1 = np.arange(4,10)print(e_1)

out:[456789]

# 一次元を作成する1-13と3の間隔の配列
e_2 = np.arange(1,14,3)print(e_2)

out:[1471013]

# 0で1次元の範囲を作成します-10、長さ6の配列
f = np.linspace(0,10,6)print(f)

out:
# 各要素の間隔は等しく、つまり(10-0)/(6-1)=2.最後の10を含めたくない場合は、パラメーターエンドポイントを追加できます= False
[0.,2.,4.,6.,8.,10.]  

# arangeによって作成された1次元配列を3行4列の2次元配列に変換します
g = np.arange(12).reshape(3,4)print(g)                        

out:
# 注:形状変更変換を使用する前後のデータ量は同じである必要があります、12= 3x4
[[0,1,2,3],[4,5,6,7],[8,9,10,11]]              

# 2 x2ランダム配列(マトリックス),値の範囲は[0.0,1.0)(0を含み、1を含まない)
h = np.random.random((2,2))print(e)

out:[[0.727769660.94164821][0.046526550.2316599]]

# で値の範囲を作成します[4,15)、2行2列のランダム整数行列
i = np.random.randint(4,15,size =(2,2))print(i)

out:[[6,5],[5,9]]

# 0の平均値と0の標準偏差を作成します.1の正規分布からランダムにサンプリングされた3x3マトリックス
j = np.random.normal(0,0.1,size =(3,3))print(j)

out:[[-0.20783767,-0.12406401,-0.11775284],[0.02037018,0.02898423,-0.02548213],[-0.0149878,0.05277648,0.08332239]]
2、 アクセスと変更#####

python

# 特定の要素にアクセスしてください。ここでは、自分でもっと試すことができます
# 1次元配列の要素にアクセスするには、括弧内にインデックスを入力します
print(np.arange(6)[3]) 
out:3

# 2次元配カラムの要素にアクセスするには、括弧に入力します[行,カラム]print(np.arange(6).reshape(3,2)[1,1]) 
out:3

# 括弧内の3桁の配列の要素にアクセスします[グループ、行、列]print(np.arange(12).reshape(2,3,2)[0,1,1]) 
out:3

# 要素を変更するには、=割り当てて置き換えるだけです
a = np.arange(6)
a[3]=7      #最初にアクセスしてから、再割り当てします
print(a)[012745]
3、 削除#####

ここで注意する必要があるのは、軸のパラメータです。2次元データでは、axis = 0は行の選択を意味し、axis = 1は列の選択を意味しますが、0が行を意味し、1が列を意味すると機械的に考えることはできません。2次元データの前提では注意してください。 。

3Dデータでは、axis = 0はグループ、1は行、2は列を意味します。どうしてこれなの?念のため、グループ、行、列は3桁の配列の形でどのようにソートされていますか?

== aの値を変更する場合は、==を再割り当てする必要があります。

python

a = np.arange(6).reshape(2,3)
np.delete(a,[0],axis =0)print(a)array([[0,1,2],[3,4,5]])  #元のデータは変更されていません

a = np.delete(a,[0],axis =0)  #再割り当て
print(a)array([[3,4,5]])   #元のデータが変更されました
4、 追加#####

ndarrayに要素を追加する方法は、python listに似ています。一般的に使用される方法は、次の2つです。

python

構文は次のとおりです。np.append(ndarray, elements, axis)

python

構文は次のとおりです。np.insert(ndarray, index, elements, axis)

パラメータには、新しい要素を挿入する位置を示すインデックスがもう1つあります。
5、 ndarrayスライス#####

python

a[:,:-1]最後の列を削除します
a[:,-1]最後の列のみを保持する

python

データの最後の列を列として取得します。

a[:,3:]

out:array([[3],[7],[11],[15]])

python

データの最後の列を1次元配列の形式で取得します。

a[:,-1]

out:array([3,7,11,15])
6、 ndarray filter

Code

使用される関数はnpです.diag(ndarray, k=N)、ここで、パラメータkの値は、データを選択する対角線を決定します。

デフォルトk=0、メインの対角線を取ります。

k =1時、メイン対角線の上段の要素を取ります。

k =-1時に、メインの対角線の下の行の要素を取得します。

python

# 2次元配列の一意の値を表示します
a =[[0,1,2],[3,4,5],[0,1,2]]print(np.unique(a))array([0,1,2,3,4,5])

# 内の唯一の行を表示します(つまり、重複する行はありません)
print(np.unique(a,axis =0))array([[0,1,2],[3,4,5]])

# の唯一の列を表示する
print(np.unique(a,axis =1))array([[0,1,2],[3,4,5],[0,1,2]])

# の最初の行の一意の値を表示します
print(np.unique(a[0]))array([0,1,2])

Code

X[X >10] #配列Xで10より大きいデータをフィルタリングする
7、 ndarray操作#####

python

np.intersect1d(x,y) #xとyの交点を取ります
np.setdiff1d(x,y)   #xとyの差を取り、xの要素を返しますが、yの要素は返しません
np.union1d(x,y)     #xとyの和集合を取る

Code

合格できます+、-、*、/またはnp.add、np.substract、np.multiply 、np.2つのマトリックスに対して要素レベルの加算、減算、乗算、および除算の操作を実行するには、除算します。これは要素レベルの操作であるため、2つのマトリックスの形状は同じであるかブロードキャスト可能である必要があります。(Broadcast)。

ここでのいわゆるブロードキャスト可能とは、2つの行列AとBの形状に一貫性がない場合でも、AをBと同じ形状の整数行列に分割できるため、要素レベルの操作を実行する場合、Aが最初に実行されることを意味します。分割し、Bで操作を実行してから、結果を結合します。これが「ブロードキャスト」マトリックスです。
8、 ndarray sort

np.sort()およびndarray.sort()を使用してndarrayをソートします。

Code

同じです:

どちらもパラメータ軸を使用して、軸に従って並べ替える軸を決定できます。=0、軸で列で並べ替え=行ごとに1で並べ替えます。

違いは次のとおりです。

np.sort()元の配列は変更されません; ndarray.sort()元の配列を変更します

Recommended Posts

Python開発でのnumpyの使用
Python開発でのパンダの使用
Pythonのタプルの添え字
UbuntuでのAnacondaの使用
UbuntuでのPythonでのGDALのインストールと使用
pythonでのwheelの使用法
Pythonの対数法の要約
pythonでnohupコマンド命令を使用する
PythonでNumpyを使い始める
CentOS8でのnmcliの詳細な使用
Pythonの用途は何ですか
Pythonでの辞書の詳細な使用法
pythonでのosパッケージの使用
パイソンクローラー開発の学習パス
pythonでのタプルの使用法
PythonでSQLiteを使用する方法
pythonmysqlのパラメータ化の説明
Ubuntuシステムの使用と開発における一般的な例外と解決策
Python3クローラーでのAjaxの使用
python標準ライブラリのglobの分析
pythonにdjangoモジュールをインストールする方法
pythonのWeb開発フレームワークとは何ですか
python開発の見通しは何ですか
pythonでのシェル実行の知識ポイント
Python3.9の7つの機能
Pythonでのpipの使用に関する詳細な説明|サードパーティライブラリのインストールの概要
Pythonクローラー-美しいスープの使用
pythonでのadbの機能は何ですか
pythonでround関数を使用する方法
Pythonでzip関数を使用する方法
Pythonは学生管理システムの開発を実現します
PythonはDoudizhuでカードのシャッフルを実装します
pythonでのリストの意味と使用法
pythonでformat関数を使用する方法
pythonでアシスタントを実行するコードを使用する方法
ubuntuでpythonをアンインストールした結果、非常に
ubuntuでのHanlpの使用の概要
Pythonで実装された特徴抽出操作の例
Ubuntu環境でのSSHのインストールと使用
03.Pythonエントリの演算子
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
Pythonインターフェース開発の実装手順の詳細な説明
python開発[最初の記事]
ubuntuでスーパーバイザーを使用する
Pythonでのパッケージの導入を理解する方法
Python構文の基本
Python3外部モジュールの使用
pythonで番号のリストを理解する方法
Python |演算子の使用
Pythonでの同時リクエスト
Pythonの基本構文
Pythonの基礎知識(1)
Ubuntuにpythonをインストールする
pythonで写真を自動的にダウンロードする方法の例
Pythonでのコンテキスト管理
pythonのPrettytableモジュール
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用