講義のページ/Pythonのお勉強/NumPy
をテンプレートにして作成
[
トップ
] [
新規
| |
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
** numpy [#gbedae22]
- 概要~
Python そのものは数値計算に向かない。だから特別なライブラ...
それが numpy である。~
ChatGPT に次のように聞いてみた。その結果を利用して学習す...
Pythonでnumpy を使いこなすための例題を示して
- 定義と基本的な量と参照~
#code(python){{
import numpy as np
# 1次元配列の作成
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 2次元配列の作成
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2)
# 3次元配列の作成
arr3 = np.array([ [[1.0, 2, 3], [4, 5, 6], [7, 8, 9]], [[...
print(arr3)
# 配列の形状の確認
print(arr1.shape)
print(arr2.shape)
print(arr3.shape)
# 配列の要素数の確認
print(arr1.size)
print(arr2.size)
print(arr3.size)
# 配列のデータ型の確認
print(arr1.dtype)
print(arr2.dtype)
print(arr3.dtype)
# データの参照
print( arr1[2] ) # 3つめ
print( arr2[2,1] ) # 3行、2列め
print( arr2[:,0] ) # 第1列
print( arr3[0,1,2] ) # 最初の3x3 の行列の2行3列め
print( arr3[:,0,:] ) # 行列になる
}}~
~
※ コメント~
・ 3次元配列に、ひとつでも浮動小数点のデータをがある...
・ 3次元配列で、arr3[:,0,:] では、2つの「2次元配列の1...
~
- 配列に対する操作~
#code(python){{
# 配列の要素の合計
print(np.sum(arr1))
print(np.sum(arr2))
print(np.sum(arr3))
# 配列の最大値と最小値
print(np.max(arr1))
print(np.max(arr2))
print(np.max(arr3))
print(np.min(arr1))
print(np.min(arr2))
print(np.min(arr3))
# 配列の平均値と中央値
print(np.mean(arr1))
print(np.mean(arr2))
print(np.mean(arr3))
print(np.median(arr1))
print(np.median(arr2))
print(np.median(arr3))
# 配列の転置
print(arr2.T)
print(arr3.T)
# 配列の要素の順番を反転
print(np.flip(arr1))
print(np.flip(arr2, axis=0))
print(np.flip(arr2, axis=1))
print(np.flip(arr3, axis=0))
print(np.flip(arr3, axis=1))
print(np.flip(arr3, axis=2))
}}~
※ コメント~
・ 2次元の配列の転置は普通の意味の転置。~
・ 3次元の配列の転置は第1引数と第3引数が入れ替わる。~
例: arry3[0,2,1] と arr3.T[1,2,0] とが同じ。~
・ flip については、試してみるとわかる。
~
- 以下、未完。
更に付け加えることは?
#code(python){{
import numpy as np
# 等間隔の数値からなる配列の生成
arr3 = np.linspace(0, 10, 5)
print(arr3)
# ゼロ行列の生成
zeros = np.zeros((3, 3))
print(zeros)
# 1で埋められた行列の生成
ones = np.ones((2, 4))
print(ones)
# 特定の値で埋められた行列の生成
filled = np.full((3, 3), 7)
print(filled)
# ランダムな値で埋められた行列の生成
random = np.random.random((2, 2))
print(random)
# 行列の要素ごとの足し算
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = a + b
print(result)
# 行列の要素ごとの掛け算
result = a * b
print(result)
# 行列の積の計算
result = np.dot(a, b)
print(result)
# 行列の転置
print(a.T)
# 行列の要素の合計(行または列ごと)
print(np.sum(a, axis=0)) # 列ごとの合計
print(np.sum(a, axis=1)) # 行ごとの合計
# 行列の要素の平均(行または列ごと)
print(np.mean(a, axis=0)) # 列ごとの平均
print(np.mean(a, axis=1)) # 行ごとの平均
}}
更に例を追加して
#code(python){{
import numpy as np
# 条件を満たす要素の抽出
arr4 = np.array([1, 2, 3, 4, 5])
even_nums = arr4[arr4 % 2 == 0]
print(even_nums)
# 配列の要素の並び替え
arr5 = np.array([3, 1, 4, 2, 5])
sorted_arr5 = np.sort(arr5)
print(sorted_arr5)
# 行列の結合
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
concatenated = np.concatenate((matrix1, matrix2), axis=0)
print(concatenated)
# 行列の分割
split_arr = np.array([1, 2, 3, 4, 5, 6])
split_parts = np.split(split_arr, 3)
print(split_parts)
# 行列の形状の変更
reshape_arr = np.array([1, 2, 3, 4, 5, 6])
reshaped = np.reshape(reshape_arr, (2, 3))
print(reshaped)
# 行列の要素の重複の削除
arr6 = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
unique_vals = np.unique(arr6)
print(unique_vals)
# 行列の要素のインデックスの取得
arr7 = np.array([10, 20, 30, 40, 50])
index = np.where(arr7 == 30)
print(index)
# 行列の要素の統計情報
arr8 = np.array([[1, 2, 3], [4, 5, 6]])
print(np.min(arr8, axis=1)) # 行ごとの最小値
print(np.max(arr8, axis=0)) # 列ごとの最大値
print(np.mean(arr8, axis=1)) # 行ごとの平均値
print(np.std(arr8, axis=0)) # 列ごとの標準偏差
}}
特に、気象レーダーのデータを扱うときに重要と思われる例は?
++ レーダー画像の可視化と表示: numpy を使用して、レーダー...
#code(python){{
import numpy as np
import matplotlib.pyplot as plt
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# データの可視化と表示
plt.imshow(radar_data, cmap="rainbow")
plt.colorbar()
plt.show()
}}
++ レーダーデータのフィルタリング: レーダーデータにはノイ...
#code(python){{
import numpy as np
from scipy.ndimage import gaussian_filter
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# ガウシアンフィルタを使用したデータの平滑化
smoothed_data = gaussian_filter(radar_data, sigma=2)
# データの可視化と表示
plt.imshow(smoothed_data, cmap="rainbow")
plt.colorbar()
plt.show()
}}
++ レーダーデータの統計情報の計算: レーダーデータから統計...
#code(python){{
import numpy as np
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# 最大値、最小値、平均値、標準偏差の計算
max_value = np.max(radar_data)
min_value = np.min(radar_data)
mean_value = np.mean(radar_data)
std_value = np.std(radar_data)
print("Max Value:", max_value)
print("Min Value:", min_value)
print("Mean Value:", mean_value)
print("Standard Deviation:", std_value)
}}
終了行:
#topicpath
** numpy [#gbedae22]
- 概要~
Python そのものは数値計算に向かない。だから特別なライブラ...
それが numpy である。~
ChatGPT に次のように聞いてみた。その結果を利用して学習す...
Pythonでnumpy を使いこなすための例題を示して
- 定義と基本的な量と参照~
#code(python){{
import numpy as np
# 1次元配列の作成
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 2次元配列の作成
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2)
# 3次元配列の作成
arr3 = np.array([ [[1.0, 2, 3], [4, 5, 6], [7, 8, 9]], [[...
print(arr3)
# 配列の形状の確認
print(arr1.shape)
print(arr2.shape)
print(arr3.shape)
# 配列の要素数の確認
print(arr1.size)
print(arr2.size)
print(arr3.size)
# 配列のデータ型の確認
print(arr1.dtype)
print(arr2.dtype)
print(arr3.dtype)
# データの参照
print( arr1[2] ) # 3つめ
print( arr2[2,1] ) # 3行、2列め
print( arr2[:,0] ) # 第1列
print( arr3[0,1,2] ) # 最初の3x3 の行列の2行3列め
print( arr3[:,0,:] ) # 行列になる
}}~
~
※ コメント~
・ 3次元配列に、ひとつでも浮動小数点のデータをがある...
・ 3次元配列で、arr3[:,0,:] では、2つの「2次元配列の1...
~
- 配列に対する操作~
#code(python){{
# 配列の要素の合計
print(np.sum(arr1))
print(np.sum(arr2))
print(np.sum(arr3))
# 配列の最大値と最小値
print(np.max(arr1))
print(np.max(arr2))
print(np.max(arr3))
print(np.min(arr1))
print(np.min(arr2))
print(np.min(arr3))
# 配列の平均値と中央値
print(np.mean(arr1))
print(np.mean(arr2))
print(np.mean(arr3))
print(np.median(arr1))
print(np.median(arr2))
print(np.median(arr3))
# 配列の転置
print(arr2.T)
print(arr3.T)
# 配列の要素の順番を反転
print(np.flip(arr1))
print(np.flip(arr2, axis=0))
print(np.flip(arr2, axis=1))
print(np.flip(arr3, axis=0))
print(np.flip(arr3, axis=1))
print(np.flip(arr3, axis=2))
}}~
※ コメント~
・ 2次元の配列の転置は普通の意味の転置。~
・ 3次元の配列の転置は第1引数と第3引数が入れ替わる。~
例: arry3[0,2,1] と arr3.T[1,2,0] とが同じ。~
・ flip については、試してみるとわかる。
~
- 以下、未完。
更に付け加えることは?
#code(python){{
import numpy as np
# 等間隔の数値からなる配列の生成
arr3 = np.linspace(0, 10, 5)
print(arr3)
# ゼロ行列の生成
zeros = np.zeros((3, 3))
print(zeros)
# 1で埋められた行列の生成
ones = np.ones((2, 4))
print(ones)
# 特定の値で埋められた行列の生成
filled = np.full((3, 3), 7)
print(filled)
# ランダムな値で埋められた行列の生成
random = np.random.random((2, 2))
print(random)
# 行列の要素ごとの足し算
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = a + b
print(result)
# 行列の要素ごとの掛け算
result = a * b
print(result)
# 行列の積の計算
result = np.dot(a, b)
print(result)
# 行列の転置
print(a.T)
# 行列の要素の合計(行または列ごと)
print(np.sum(a, axis=0)) # 列ごとの合計
print(np.sum(a, axis=1)) # 行ごとの合計
# 行列の要素の平均(行または列ごと)
print(np.mean(a, axis=0)) # 列ごとの平均
print(np.mean(a, axis=1)) # 行ごとの平均
}}
更に例を追加して
#code(python){{
import numpy as np
# 条件を満たす要素の抽出
arr4 = np.array([1, 2, 3, 4, 5])
even_nums = arr4[arr4 % 2 == 0]
print(even_nums)
# 配列の要素の並び替え
arr5 = np.array([3, 1, 4, 2, 5])
sorted_arr5 = np.sort(arr5)
print(sorted_arr5)
# 行列の結合
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
concatenated = np.concatenate((matrix1, matrix2), axis=0)
print(concatenated)
# 行列の分割
split_arr = np.array([1, 2, 3, 4, 5, 6])
split_parts = np.split(split_arr, 3)
print(split_parts)
# 行列の形状の変更
reshape_arr = np.array([1, 2, 3, 4, 5, 6])
reshaped = np.reshape(reshape_arr, (2, 3))
print(reshaped)
# 行列の要素の重複の削除
arr6 = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
unique_vals = np.unique(arr6)
print(unique_vals)
# 行列の要素のインデックスの取得
arr7 = np.array([10, 20, 30, 40, 50])
index = np.where(arr7 == 30)
print(index)
# 行列の要素の統計情報
arr8 = np.array([[1, 2, 3], [4, 5, 6]])
print(np.min(arr8, axis=1)) # 行ごとの最小値
print(np.max(arr8, axis=0)) # 列ごとの最大値
print(np.mean(arr8, axis=1)) # 行ごとの平均値
print(np.std(arr8, axis=0)) # 列ごとの標準偏差
}}
特に、気象レーダーのデータを扱うときに重要と思われる例は?
++ レーダー画像の可視化と表示: numpy を使用して、レーダー...
#code(python){{
import numpy as np
import matplotlib.pyplot as plt
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# データの可視化と表示
plt.imshow(radar_data, cmap="rainbow")
plt.colorbar()
plt.show()
}}
++ レーダーデータのフィルタリング: レーダーデータにはノイ...
#code(python){{
import numpy as np
from scipy.ndimage import gaussian_filter
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# ガウシアンフィルタを使用したデータの平滑化
smoothed_data = gaussian_filter(radar_data, sigma=2)
# データの可視化と表示
plt.imshow(smoothed_data, cmap="rainbow")
plt.colorbar()
plt.show()
}}
++ レーダーデータの統計情報の計算: レーダーデータから統計...
#code(python){{
import numpy as np
# レーダーデータの読み込み
radar_data = np.loadtxt("radar_data.txt")
# 最大値、最小値、平均値、標準偏差の計算
max_value = np.max(radar_data)
min_value = np.min(radar_data)
mean_value = np.mean(radar_data)
std_value = np.std(radar_data)
print("Max Value:", max_value)
print("Min Value:", min_value)
print("Mean Value:", mean_value)
print("Standard Deviation:", std_value)
}}
ページ名: