91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

numpy_ndarray的矩陣運算

發布時間:2020-07-13 20:23:14 來源:網絡 閱讀:377 作者:Tobey_51 欄目:大數據

ndarry的矩陣運算

數組是編程中的概念,矩陣、矢量是數學概念
在計算機編程中,矩陣可以用數組形式定義,矢量可以用結構定義

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]]
  1. 矢量和標量運算:“廣播” - 將標量“廣播”到各個元素
# 矢量與標量運算
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]
  1. 多維數組的索引與切片

arr[r1:r2, c1:c2]
arr[1,1]等價arr[1][1]
[:]代表某個維度的數據

示例代碼(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]]
  1. 條件索引
布爾值多維數組:arr[condition], condition也可以是多個條件組合。

注意,多個條件組合要使用& |連接,而不是Python的 and or。

示例代碼(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的維數轉換

二維數組直接使用轉換函數:transpose()

高維數組轉換要指定維度編號參數(0,1,2,……),注意參數是元組

示例代碼:

arr = np.random.rand(2, 3)  # 2*3 數組
print(arr)
print(arr.transpose())      # 轉換為 3*2 數組

arr3d = np.random.rand(2, 3, 4) # 2*3*4數組,2對應0, 3對應1,4對應2
print(arr3d)
print(arr3d.transpose((1, 0, 2)))   # 根據維度編號,轉換為3*2*4數組

運行結果:


# 高維數組轉換
# 轉換前:
[[[ 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]]]
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤庆县| 三亚市| 称多县| 三台县| 昭通市| 图木舒克市| 怀柔区| 井陉县| 衡东县| 浮梁县| 镇安县| 通城县| 永清县| 太白县| 德兴市| 阿拉尔市| 烟台市| 密云县| 信宜市| 岢岚县| 鄂州市| 哈密市| 通化市| 巢湖市| 安远县| 京山县| 阳谷县| 南漳县| 博爱县| 崇义县| 洪泽县| 葫芦岛市| 沁水县| 鞍山市| 库尔勒市| 山西省| 叙永县| 含山县| 佛教| 文山县| 隆安县|