[データ解析研究ノートday07]の+ベクトル演算のマトリクス処理+マトリクス演算ndarray +ベクトルとスカラー演算+ ndarrayインデックススライス+インデックスとスライス一次元配列+インデックススライス多次元アレイndarray:+ ndarrayディメンション

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秒」を搭載し

公開された176元の記事 ウォン称賛56 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_35456045/article/details/104084393