記事のディレクトリ
ndarray行列計算
アレイは、プログラミング、行列、ベクトル数学の概念の概念です。
コンピュータプログラミングでは、マトリックスアレイの形に定義することができるでは、ベクターは構造によって定義することができます!
1.ベクトル演算:要素に使用されるのと同じサイズの配列との間の計算
サンプルコード(1):
# 矢量与矢量运算
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print("元素相乘:")
print(arr * arr)
print("矩阵相加:")
print(arr + arr)
結果:
元素相乘:
[[ 1 4 9]
[16 25 36]]
矩阵相加:
[[ 2 4 6]
[ 8 10 12]]
2.ベクトルとスカラー演算:「ブロードキャスト」 - スカラー「ブロードキャスト」を各要素に
サンプルコード(2):
# 矢量与标量运算
print(1. / arr)
print(2. * arr)
結果:
[[ 1. 0.5 0.33333333]
[ 0.25 0.2 0.16666667]]
[[ 2. 4. 6.]
[ 8. 10. 12.]]
ndarrayインデックスとスライスしました
1.インデックスとスライス一次元アレイ
類似したインデックスのPythonのリスト
サンプルコード(1):
# 一维数组
arr1 = np.arange(10)
print(arr1)
print(arr1[2:5])
結果:
[0 1 2 3 4 5 6 7 8 9]
[2 3 4]
2.多次元配列のインデックスとスライス:
ARR [R1:R2、C1:C2]
ARR [1,1] [1] [1]と等価であるARR
[:]ディメンションのデータを表し
サンプルコード(2):
# 多维数组
arr2 = np.arange(12).reshape(3,4)
print(arr2)
print(arr2[1])
print(arr2[0:2, 2:])
print(arr2[:, 1:3])
結果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[4 5 6 7]
[[2 3]
[6 7]]
[[ 1 2]
[ 5 6]
[ 9 10]]
3.条件インデックス
ブール多次元配列:ARR [条件]条件は、条件の複数の組み合わせであってもよいです。
条件の複数の組み合わせを使用することに注意してください&|代わりのPythonの接続およびまたは。
サンプルコード(3):
# 条件索引
# 找出 data_arr 中 2005年后的数据
data_arr = np.random.rand(3,3)
print(data_arr)
year_arr = np.array([[2000, 2001, 2000],
[2005, 2002, 2009],
[2001, 2003, 2010]])
is_year_after_2005 = year_arr >= 2005
print(is_year_after_2005, is_year_after_2005.dtype)
filtered_arr = data_arr[is_year_after_2005]
print(filtered_arr)
#filtered_arr = data_arr[year_arr >= 2005]
#print(filtered_arr)
# 多个条件
filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]
print(filtered_arr)
結果:
[[ 0.53514038 0.93893429 0.1087513 ]
[ 0.32076215 0.39820313 0.89765765]
[ 0.6572177 0.71284822 0.15108756]]
[[False False False]
[ True False True]
[False False True]] bool
[ 0.32076215 0.89765765 0.15108756]
#[ 0.32076215 0.89765765 0.15108756]
[ 0.53514038 0.1087513 0.39820313]
変換のNdarray寸法
)(トランスポーズ:二次元アレイに直接変換関数を使用して
次元数を指定するための高次元配列変換パラメータ(0、1、2、...)、パラメータはタプルであることに注意してください
サンプルコード:
arr = np.random.rand(2,3) # 2x3 数组
print(arr)
print(arr.transpose()) # 转换为 3x2 数组
arr3d = np.random.rand(2,3,4) # 2x3x4 数组,2对应0,3对应1,4对应3
print(arr3d)
print(arr3d.transpose((1,0,2))) # 根据维度编号,转为为 3x2x4 数组
結果:
# 二维数组转换
# 转换前:
[[ 0.50020075 0.88897914 0.18656499]
[ 0.32765696 0.94564495 0.16549632]]
# 转换后:
[[ 0.50020075 0.32765696]
[ 0.88897914 0.94564495]
[ 0.18656499 0.16549632]]
# 高维数组转换
# 转换前:
[[[ 0.91281153 0.61213743 0.16214062 0.73380458]
[ 0.45539155 0.04232412 0.82857746 0.35097793]
[ 0.70418988 0.78075814 0.70963972 0.63774692]]
[[ 0.17772347 0.64875514 0.48422954 0.86919646]
[ 0.92771033 0.51518773 0.82679073 0.18469917]
[ 0.37260457 0.49041953 0.96221477 0.16300198]]]
# 转换后:
[[[ 0.91281153 0.61213743 0.16214062 0.73380458]
[ 0.17772347 0.64875514 0.48422954 0.86919646]]
[[ 0.45539155 0.04232412 0.82857746 0.35097793]
[ 0.92771033 0.51518773 0.82679073 0.18469917]]
[[ 0.70418988 0.78075814 0.70963972 0.63774692]
[ 0.37260457 0.49041953 0.96221477 0.16300198]]]
著作権©BigCatすべての権利予約し、Gitbook「リビジョン時刻:2017年3月12日夜10時44分22秒」を搭載し