Python 機械学習を始めるための NumPy ライブラリの使用 - 無料共有チュートリアル Python の入門からマスターまで 30 日間ですぐに学べる Python ビデオ チュートリアル

シリーズ記事ディレクトリ

第 1 章 Python 機械学習を始めるための Pandas ライブラリの使用

第 2 章 Python 機械学習を始めるための NumPy ライブラリの使用


第2章 Python機械学習入門のためのシリーズやDataFrameの作成、インデックス付け、スライス、データクリーニング、データ分析など 第2章Python機械学習入門のためのデータ可視化
第2章 Python機械学習入門のための機械学習アルゴリズム
第2章 Python始めるための機械実践プロジェクト



ここに画像の説明を挿入

序文

NumPy は、Python の重要な科学計算ライブラリであり、効率的な多次元配列オブジェクトとさまざまな数学関数を提供し、ベクトル化された計算と配列操作を容易にします。機械学習では、NumPy は、後続のモデルのトレーニングと評価に備えるためのデータ処理と前処理によく使用されます。この記事では、配列の作成と操作、共通関数、ブロードキャストメカニズム、乱数生成、ファイル操作、線形代数演算など、NumPy ライブラリの基本的な操作とメソッドを紹介します。読者が NumPy の使用法をよりよく理解し、機械学習とデータ分析に役立つことを願っています。

1. NumPyライブラリの紹介

NumPy は、Python の重要な科学計算ライブラリであり、効率的な多次元配列オブジェクトとさまざまな数学関数を提供し、ベクトル化された計算と配列操作を容易にします。NumPy の主な機能には、配列の作成と操作、配列の統計と計算、配列の並べ替えと検索、乱数の生成、ファイル操作、線形代数演算などが含まれます。

NumPy ライブラリの役割

NumPy ライブラリの主な役割は、ベクトル化された計算と配列操作を容易にする、効率的な多次元配列オブジェクトとさまざまな数学関数を提供することです。NumPy の配列オブジェクトは、整数、浮動小数点数、複素数、ブール値などを含むあらゆるタイプのデータを格納でき、基本的な数学演算、論理演算、比較演算などを実行できます。

NumPyライブラリのインストール

NumPy ライブラリをインストールする前に、まず Python 環境をインストールする必要があります。NumPy ライブラリは、次のコマンドでインストールできます。

pip をコピーして numpy をインストールします

2. NumPy 配列の作成と操作

NumPy 配列は、NumPy ライブラリの最も重要なデータ構造であり、あらゆる種類のデータを格納できる多次元配列オブジェクトです。NumPy 配列の作成と操作には、次の側面が含まれます。

NumPy 配列を作成する

NumPy ライブラリの array() 関数を使用して NumPy 配列を作成することも、他の関数を使用して特定の種類の配列を作成することもできます。たとえば、すべて 0 の配列を作成する zeros() 関数、ones( ) 関数はすべて 1 の配列を作成し、empty() 関数は空の配列を作成します。

NumPy 配列のプロパティ

NumPy 配列の属性には、配列の形状、データ型、次元、要素数などが含まれます。Shape 属性を使用して配列の形状を取得し、 dtype 属性を使用して配列のデータ型を取得し、 ndim 属性を使用して配列の次元を取得し、 size 属性を使用して配列内の要素の数を取得できます。 、など。

NumPy 配列のインデックス付けとスライス

NumPy 配列のインデックス付けとスライスは Python リストに似ており、配列の要素は整数インデックス付け、スライス、ブール値インデックス付けなどを使用して取得できます。コロン (:) はスライス範囲を示すために使用でき、ブール配列は条件付きインデックスを示すために使用できます。

NumPy 配列の操作

NumPy 配列は、基本的な数学演算、論理演算、比較演算などをサポートしており、NumPy ライブラリのさまざまな関数を使用して配列演算を実行できます。NumPy 配列の演算には、要素レベルの演算、行列演算、ブロードキャスト演算が含まれます。

import numpy as np

# 创建一维数组
a = np.array([1, 2, 3])
print(a)

# 创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

# 创建全零数组
c = np.zeros((2, 3))
print(c)

# 创建全一数组
d = np.ones((2, 3))
print(d)

# 创建空数组
e = np.empty((2, 

ここに画像の説明を挿入

3. NumPyの共通機能

NumPy ライブラリは、配列の形状操作、配列要素の操作、配列の統計計算、配列の並べ替えと検索などを簡単に実行できる豊富な関数とメソッドを提供します。一般的に使用される関数には次の側面が含まれます。

配列形状操作関数

配列形状操作関数には、reshape()、 flatten()、transpose()、swapaxes() などが含まれており、これらを使用して配列の形状と次元を簡単に変更できます。

配列要素の操作関数

配列要素の演算関数には、sum()関数、mean()関数、std()関数、var()関数などがあり、配列要素の統計計算を便利に行うことができます。

配列統計関数

配列統計関数には、min() 関数、max() 関数、argmin() 関数、argmax() 関数などがあり、統計計算や配列要素の検索を便利に実行できます。

配列ソート関数

配列ソート関数には、sort() 関数、argsort() 関数、lexsort() 関数、searchsorted() 関数などがあり、配列要素を簡単にソートおよび検索できます。
配列形状操作関数

配列形状操作関数には、reshape()、 flatten()、transpose()、swapaxes() などが含まれており、これらを使用して配列の形状と次元を簡単に変更できます。

复制import numpy as np

# reshape函数改变数组形状
a = np.array([[1, 2], [3, 4], [5, 6]])
b = a.reshape((2, 3))
print(b)

# flatten函数将多维数组转换为一维数组
c = np.array([[1, 2], [3, 4], [5, 6]])
d = c.flatten()
print(d)

# transpose函数将数组进行转置
e = np.array([[1, 2], [3, 4], [5, 6]])
f = e.transpose()
print(f)

# swapaxes函数交换数组的两个轴
g = np.array([[1, 2], [3, 4], [5, 6]])
h = np.swapaxes(g, 0, 1)
print(h)

数组元素操作函数

数组元素操作函数包括sum()函数、mean()函数、std()函数、var()函数等,可以方便地进行数组元素的统计计算。

# sum函数计算数组元素的和
a = np.array([1, 2, 3])
b = np.sum(a)
print(b)

# mean函数计算数组元素的平均值
c = np.array([1, 2, 3])
d = np.mean(c)
print(d)

# std函数计算数组元素的标准差
e = np.array([1, 2, 3])
f = np.std(e)
print(f)

# var函数计算数组元素的方差
g = np.array([1, 2, 3])
h = np.var(g)
print(h)

配列統計関数

配列統計関数には、min() 関数、max() 関数、argmin() 関数、argmax() 関数などがあり、統計計算や配列要素の検索を便利に実行できます。

复制import numpy as np

# min函数计算数组元素的最小值
a = np.array([1, 2, 3])
b = np.min(a)
print(b)

# max函数计算数组元素的最大值
c = np.array([1, 2, 3])
d = np.max(c)
print(d)

# argmin函数查找数组元素的最小值的索引
e = np.array([1, 2, 3])
f = np.argmin(e)
print(f)

# argmax函数查找数组元素的最大值的索引
g = np.array([1, 2, 3])
h = np.argmax(g)
print(h)

配列ソート関数

配列ソート関数には、sort() 関数、argsort() 関数、lexsort() 関数、searchsorted() 関数などがあり、配列要素を簡単にソートおよび検索できます。

复制import numpy as np

# sort函数对数组元素进行排序
a = np.array([3, 1, 2])
b = np.sort(a)
print(b)

# argsort函数返回数组元素排序后的索引
c = np.array([3, 1, 2])
d = np.argsort(c)
print(d)

# lexsort函数对多个数组进行排序
e = np.array([3, 1, 2])
f = np.array([1, 2, 3])
g = np.lexsort((e, f))
print(g)

# searchsorted函数在有序数组中查找元素的插入位置
h = np.array([1, 2, 3])
i = np.searchsorted(h, 2)
print

4. NumPy ブロードキャスト メカニズム

ブロードキャスト メカニズムは、NumPy の非常に重要な機能であり、明示的な形状変換を行わずに、さまざまな形状の配列に対する操作を可能にします。ブロードキャスト メカニズムを適用すると、配列操作のコードが大幅に簡素化され、コードの効率が向上します。

ブロードキャストメカニズムの概念

ブロードキャスト メカニズムとは、NumPy が配列演算を実行するときに、異なる形状の配列を同じ形状になるように自動的に拡張してから演算を実行することを意味します。ブロードキャスト メカニズムのルールには 2 つの側面が含まれます: まず、NumPy は 2 つの配列の形状を端から 1 つずつ比較します。2 つの配列の形状が同じであるか、一方の配列の形状が 1 の場合、それらは第二に、NumPy は形状 1 の配列を別の配列と同じ形状になるように自動的に拡張します。

ブロードキャストメカニズムの適用

ブロードキャスト メカニズムのアプリケーションには、配列の加算、減算、乗算、除算、配列の比較演算、配列の論理演算などが含まれます。配列操作を実行する場合、ブロードキャスト メカニズムを使用してコードを簡素化し、コードの効率を向上させることができます。

5、NumPy乱数生成

NumPy ライブラリには豊富な乱数生成関数が用意されており、さまざまな種類の乱数を簡単に生成できます。乱数生成関数には次の側面が含まれます。

乱数発生器

乱数生成関数には、rand()関数、randn()関数、randint()関数、uniform()関数、normal()関数などがあり、簡単にさまざまな種類の乱数を生成できます。
NumPy ライブラリは、ランダムな整数の生成、ランダムな浮動小数点数の生成、ランダムな配列の生成など、さまざまな乱数生成関数を提供します。これらの関数は、特定の分布に準拠した乱数を簡単に生成できるため、シミュレーションや実験に役立ちます。

import numpy as np

# randint函数生成指定范围内的随机整数
a = np.random.randint(0, 10, size=(3, 3))
print(a)

ランダムな整数を生成する

NumPy ライブラリのrandom.randint() 関数を使用して、指定された範囲内のランダムな整数を生成できます。
ランダムな浮動小数点数を生成する

NumPy ライブラリのrandom.rand() 関数を使用して、指定した形状のランダムな浮動小数点数を生成することができます。また、random.randn() 関数を使用して、標準正規表現に準拠するランダムな浮動小数点数を生成することもできます。分布。

乱数シード

乱数シードとは乱数発生器の初期状態を指し、乱数シードを設定することで乱数の生成を制御できます。乱数シードは、NumPy ライブラリのrandom.seed() 関数を使用して設定できます。

import numpy as np

# rand函数生成指定形状的随机浮点数
a = np.random.rand(3, 3)
print(a)

# randn函数生成符合标准正态分布的随机浮点数
b = np.random.randn(3, 3)
print(b)

ランダムシードを生成する

NumPy ライブラリのrandom.seed() 関数を使用してランダム シードを生成し、乱数の生成を制御できます。

import numpy as np

# seed函数生成随机种子
np.random.seed(0)
a = np.random.rand(3, 3)
print(a)

6、NumPy ファイル操作

ここに画像の説明を挿入

NumPy ライブラリは、さまざまな種類のファイルを簡単に読み書きできる豊富なファイル操作関数を提供します。ファイル操作関数には次の側面が含まれます。

テキストファイルを読む

NumPyライブラリのloadtxt()関数、genfromtxt()関数、fromfile()関数などを使用して、テキストファイル内のデータを読み取ることができます。

import numpy as np

# 从CSV文件中读取数组数据
a = np.genfromtxt('data.csv', delimiter=',')
print(a)

# 将数组数据保存到CSV文件中
b = np.array([[1, 2], [3, 4]])
np.savetxt('data.csv', b, delimiter=',')

バイナリファイルを読み取る

NumPyライブラリのload()関数、loadtxt()関数、fromfile()関数などを使用して、バイナリファイル内のデータを読み取ることができます。

import numpy as np

# 保存数组数据到文件中
a = np.array([[1, 2], [3, 4]])
np.save('data.npy', a)

# 从文件中读取数组数据
b = np.load('data.npy')
print(b)

テキストファイルに書き込む

NumPyライブラリのsavetxt()関数やtofile()関数などを利用してテキストファイルにデータを書き込むことができます。

import numpy as np

# 保存数组数据到文本文件中
a = np.array([[1, 2], [3, 4]])
np.savetxt('data.txt', a)

# 从文本文件中读取数组数据
b = np.loadtxt('data.txt')
print(b)

バイナリファイルを書き込む

NumPy ライブラリの save() 関数、savez() 関数などを使用して、バイナリ ファイルにデータを書き込むことができます。

7、NumPyの線形代数演算

NumPy ライブラリは、行列の作成、行列演算、行列の分解を容易にする線形代数演算関数を豊富に提供します。線形代数演算関数には次の側面が含まれます。
NumPy ライブラリは、行列乗算、行列逆行列、行列行列式、固有値、固有ベクトルなどを含むさまざまな線形代数演算関数を提供します。これらの関数は、線形代数演算を便利に実行し、データ分析とモデルのトレーニングを支援します。

行列の乗算

行列の乗算は、NumPy ライブラリの dot() 関数を使用して実行できます。

import numpy as np

# 矩阵乘法运算
def matrix_multiply(a, b):
    c = np.dot(a, b)
    return c

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = matrix_multiply(a, b)
print(c)

行列の作成と操作

NumPy ライブラリの mat() 関数や array() 関数を使用して行列オブジェクトを作成したり、T 属性や H 属性などを使用して行列の転置や共役などの演算を実行したりできます。
逆行列

逆行列は、NumPy ライブラリの inv() 関数を使用して見つけることができます。

import numpy as np

# 求解矩阵的逆矩阵
def matrix_inverse(a):
    b = np.linalg.inv(a)
    return b

a = np.array([[1, 2], [3, 4]])
b = matrix_inverse(a)
print(b)

行列演算

NumPy ライブラリの dot() 関数、multiply() 関数、inv() 関数、solve() 関数などを使用して、行列の乗算、要素レベルの乗算、行列の逆行列、行列の解法などの演算を実行できます。

行列分解

NumPyライブラリのeig()関数、svd()関数、qr()関数などを利用して、行列の固有値分解、特異値分解、QR分解などを行うことができます。行列行列式

行列の行列式は、NumPy ライブラリの det() 関数を使用して計算できます。

import numpy as np

# 计算矩阵的行列式
def matrix_determinant(a):
    b = np.linalg.det(a)
    return b

a = np.array([[1, 2], [3, 4]])
b = matrix_determinant(a)
print(b)

私をフォローしてネットワーク全体で学習教材を共有してください

8. まとめと展望

NumPy ライブラリは、Python の非常に重要な科学計算ライブラリであり、効率的な多次元配列オブジェクトとさまざまな数学関数を提供し、ベクトル化された計算と配列操作を容易にします。この記事では、配列の作成と操作、共通関数、ブロードキャストメカニズム、乱数生成、ファイル操作、線形代数演算など、NumPy ライブラリの基本的な操作とメソッドを紹介します。NumPy ライブラリの利点は、科学計算とデータ分析を容易にする効率的な配列操作と数学関数を提供することです。将来的には、データサイエンスと人工知能の発展に伴い、NumPy ライブラリの応用の可能性はさらに広がるでしょう。
ネットワーク ディスク共有
Python の入門から習熟まで 30 日間ですばやく学習できる Python ビデオ チュートリアル
リンク: https://pan.baidu.com/s/19FeaVPN_F0scxYR24e1MCg?pwd=c8qz
抽出コード: c8qz

おすすめ

転載: blog.csdn.net/CDB3399/article/details/130650487