久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Numpy入門教程:練習作業(yè)01

 老馬的程序人生 2020-08-17

序言

什么是 NumPy 呢?

NumPy 這個詞來源于兩個單詞 -- NumericalPython,。其是一個功能強大的 Python 庫,,可以幫助程序員輕松地進行數(shù)值計算,通常應(yīng)用于以下場景:

  • 執(zhí)行各種數(shù)學(xué)任務(wù),,如:數(shù)值積分,、微分、內(nèi)插,、外推等,。因此,,當涉及到數(shù)學(xué)任務(wù)時,,它形成了一種基于 Python 的 MATLAB 的快速替代,。

  • 計算機中的圖像表示為多維數(shù)字數(shù)組。NumPy 提供了一些優(yōu)秀的庫函數(shù)來快速處理圖像,。例如,鏡像圖像,、按特定角度旋轉(zhuǎn)圖像等,。

  • 在編寫機器學(xué)習算法時,需要對矩陣進行各種數(shù)值計算,。如:矩陣乘法,、求逆、換位、加法等,。NumPy 數(shù)組用于存儲訓(xùn)練數(shù)據(jù)和機器學(xué)習模型的參數(shù),。


練習作業(yè)

1. 創(chuàng)建從0到9的一維數(shù)字數(shù)組。

【知識點:數(shù)組的創(chuàng)建】

  • 如何創(chuàng)建一維數(shù)組,?

【答案】

import numpy as np

arr = np.arange(10)
print(arr)
# [0 1 2 3 4 5 6 7 8 9]

2. 創(chuàng)建一個元素全為True的 3×3 數(shù)組,。

【知識點:數(shù)組的創(chuàng)建】

  • 如何創(chuàng)建一個布爾數(shù)組?

【答案】

import numpy as np

arr = np.full([33], True, dtype=np.bool)
print(arr)
# [[ True  True  True]
#  [ True  True  True]
#  [ True  True  True]]

3. 從arr中提取所有奇數(shù),。

  • arr = np.arange(10)

【知識點:搜索】

  • 如何從一維數(shù)組中提取滿足指定條件的元素,?

【答案】

import numpy as np

arr = np.arange(10)

# 方法1
index = np.where(arr % 2 == 1)
print(arr[index])
# [1 3 5 7 9]

# 方法2
x = arr[arr % 2 == 1]
print(x)
# [1 3 5 7 9]

4. 將arr中的偶數(shù)元素替換為0。

  • arr = np.arange(10)

【知識點:搜索】

  • 如何用numpy數(shù)組中的另一個值替換滿足條件的元素項,?

【答案】

import numpy as np

arr = np.arange(10)
index = np.where(arr % 2 == 0)
arr[index] = 0
print(arr)
# [0 1 0 3 0 5 0 7 0 9]

5. 將 arr 中的所有偶數(shù)元素替換為0,,而不改變arr。

  • arr = np.arange(10)

【知識點:搜索】

  • 如何在不影響原始數(shù)組的情況下替換滿足條件的元素項,?

【答案】

import numpy as np

arr = np.arange(10)

# 方法1
x = np.where(arr % 2 == 00, arr)
print(x)
# [0 1 0 3 0 5 0 7 0 9]
print(arr)
# [0 1 2 3 4 5 6 7 8 9]

# 方法2
x = np.copy(arr)
x[x % 2 == 0] = 0
print(x)
# [0 1 0 3 0 5 0 7 0 9]
print(arr)
# [0 1 2 3 4 5 6 7 8 9]

6. 將 arr轉(zhuǎn)換為2行的2維數(shù)組,。

  • arr = np.arange(10)

【知識點:數(shù)組的操作】

  • 如何改變數(shù)組的形狀?

【答案】

import numpy as np

arr = np.arange(10)

# 方法1
x = np.reshape(arr, newshape=[25])
print(x)
# [[0 1 2 3 4]
#  [5 6 7 8 9]]

# 方法2
x = np.reshape(arr, newshape=[2-1])
print(x)
# [[0 1 2 3 4]
#  [5 6 7 8 9]]

7. 垂直堆疊數(shù)組a和數(shù)組b,。

  • a = np.arange(10).reshape([2, -1])

  • b = np.repeat(1, 10).reshape([2, -1])

【知識點:數(shù)組操作】

  • 如何垂直疊加兩個數(shù)組,?

【答案】

import numpy as np

a = np.arange(10).reshape([2-1])
b = np.repeat(110).reshape([2-1])

print(a)
# [[0 1 2 3 4]
#  [5 6 7 8 9]]
print(b)
# [[1 1 1 1 1]
#  [1 1 1 1 1]]

# 方法1
print(np.concatenate([a, b], axis=0))
# [[0 1 2 3 4]
#  [5 6 7 8 9]
#  [1 1 1 1 1]
#  [1 1 1 1 1]]

# 方法2
print(np.vstack([a, b]))
# [[0 1 2 3 4]
#  [5 6 7 8 9]
#  [1 1 1 1 1]
#  [1 1 1 1 1]]

8. 將數(shù)組a與數(shù)組b水平堆疊。

  • a = np.arange(10).reshape([2, -1])

  • b = np.repeat(1, 10).reshape([2, -1])

【知識點:數(shù)組的操作】

  • 如何水平疊加兩個數(shù)組,?

【答案】

import numpy as np

a = np.arange(10).reshape([2-1])
b = np.repeat(110).reshape([2-1])

print(a)
# [[0 1 2 3 4]
#  [5 6 7 8 9]]
print(b)
# [[1 1 1 1 1]
#  [1 1 1 1 1]]

# 方法1
print(np.concatenate([a, b], axis=1))
# [[0 1 2 3 4 1 1 1 1 1]
#  [5 6 7 8 9 1 1 1 1 1]]

# 方法2
print(np.hstack([a, b]))
# [[0 1 2 3 4 1 1 1 1 1]
#  [5 6 7 8 9 1 1 1 1 1]]

9. 獲取數(shù)組a和數(shù)組b之間的公共項,。

  • a = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6])

  • b = np.array([7, 2, 10, 2, 7, 4, 9, 4, 9, 8])

【知識點:集合操作】

  • 如何獲取兩個numpy數(shù)組之間的公共項?

【答案】

import numpy as np

a = np.array([1232343456])
b = np.array([72102749498])
x = np.intersect1d(a, b)
print(x)  # [2 4]

10. 從數(shù)組a中刪除數(shù)組b中的所有項,。

  • a = np.array([1, 2, 3, 4, 5])

  • b = np.array([5, 6, 7, 8, 9])

【知識點:集合操作】

  • 如何從一個數(shù)組中刪除存在于另一個數(shù)組中的項,?

【答案】

import numpy as np

a = np.array([12345])
b = np.array([56789])
x = np.setdiff1d(a, b)
print(x)  # [1 2 3 4]

11. 獲取a和b元素匹配的位置。

  • a = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6])

  • b = np.array([7, 2, 10, 2, 7, 4, 9, 4, 9, 8])

【知識點:邏輯函數(shù)】

  • 如何得到兩個數(shù)組元素匹配的位置,?

【答案】

import numpy as np

a = np.array([1232343456])
b = np.array([72102749498])
mask = np.equal(a, b)

# 方法1
x = np.where(mask)
print(x)  # (array([1, 3, 5, 7], dtype=int64),)

# 方法2
x = np.nonzero(mask)
print(x)  # (array([1, 3, 5, 7], dtype=int64),)

12. 獲取5到10 之間的所有元素,。

  • a = np.array([2, 6, 1, 9, 10, 3, 27])

【知識點:邏輯函數(shù)】

  • 如何從numpy數(shù)組中提取給定范圍內(nèi)的所有元素?

【答案】

import numpy as np

a = np.array([261910327])
mask = np.logical_and(np.greater_equal(a, 5), np.less_equal(a, 10))

# 方法1
x = np.where(mask)
print(a[x])  # [ 6  9 10]

# 方法2
x = np.nonzero(mask)
print(a[x])  # [ 6  9 10]

# 方法3
x = a[np.logical_and(a >= 5, a <= 10)]
print(x)  # [ 6  9 10]

13. 交換數(shù)組arr中的列1和列2,。

  • arr = np.arange(9).reshape(3, 3)

【知識點:索引與切片】

  • 如何交換二維數(shù)組中的兩列,?

【答案】

import numpy as np

arr = np.arange(9).reshape(33)
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

x = arr[:, [210]]
print(x)
# [[2 1 0]
#  [5 4 3]
#  [8 7 6]]

14. 交換數(shù)組arr中的第1行和第2行。

  • arr = np.arange(9).reshape(3, 3)

【知識點:索引與切片】

  • 如何交換二維數(shù)組中的兩行,?

【答案】

import numpy as np

arr = np.arange(9).reshape(33)
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

x = arr[[102], :]
print(x)
# [[3 4 5]
#  [0 1 2]
#  [6 7 8]]

15. 反轉(zhuǎn)二維數(shù)組arr的行,。

  • arr = np.arange(9).reshape(3, 3)

【知識點:索引與切片】

  • 如何反轉(zhuǎn)二維數(shù)組的行?

【答案】

import numpy as np

arr = np.arange(9).reshape(33)
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

x = arr[::-1, :]
print(x)
# [[6 7 8]
#  [3 4 5]
#  [0 1 2]]

16. 反轉(zhuǎn)二維數(shù)組arr的列,。

  • arr = np.arange(9).reshape(3, 3)

【知識點:索引與切片】

  • 如何反轉(zhuǎn)二維數(shù)組的列,?

【答案】

import numpy as np

arr = np.arange(9).reshape(33)
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

x = arr[:, ::-1]
print(x)
# [[2 1 0]
#  [5 4 3]
#  [8 7 6]]

17. 創(chuàng)建一個形為5×3的二維數(shù)組,以包含5到10之間的隨機數(shù),。

【知識點:隨機抽樣】

  • 如何創(chuàng)建隨機二維數(shù)組,?

【答案】

import numpy as np

x = np.random.randint(510, [53])
print(x)
# [[5 8 8]
#  [5 6 8]
#  [8 8 7]
#  [6 7 9]
#  [6 5 8]]

x = np.random.uniform(510, [53])
print(x)
# [[6.73675226 8.50271284 9.66526032]
#  [9.42365472 7.56513263 7.86171898]
#  [9.31718935 5.71579324 9.92067933]
#  [8.90907128 8.05704153 6.0189007 ]
#  [8.70753644 7.75056151 5.71714203]]

18. 只打印或顯示numpy數(shù)組rand_arr的小數(shù)點后3位,。

  • rand_arr = np.random.random([5, 3])

【知識點:輸入和輸出】

  • 如何在numpy數(shù)組中只打印小數(shù)點后三位?

【答案】

import numpy as np

rand_arr = np.random.random([53])
print(rand_arr)
# [[0.33033427 0.05538836 0.05947305]
#  [0.36199439 0.48844555 0.26309599]
#  [0.05361816 0.71539075 0.60645637]
#  [0.95000384 0.31424729 0.41032467]
#  [0.36082793 0.50101268 0.6306832 ]]

np.set_printoptions(precision=3)
print(rand_arr)
# [[0.33  0.055 0.059]
#  [0.362 0.488 0.263]
#  [0.054 0.715 0.606]
#  [0.95  0.314 0.41 ]
#  [0.361 0.501 0.631]]

19. 將numpy數(shù)組a中打印的項數(shù)限制為最多6個元素,。

【知識點:輸入和輸出】

  • 如何限制numpy數(shù)組輸出中打印的項目數(shù),?

【答案】

import numpy as np

a = np.arange(15)
print(a)
# [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
np.set_printoptions(threshold=6)
print(a)
# [ 0  1  2 ... 12 13 14]

20. 打印完整的numpy數(shù)組a而不中斷。

【知識點:輸入和輸出】

  • 如何打印完整的numpy數(shù)組而不中斷,?

【答案】

import numpy as np

a = np.arange(15)
np.set_printoptions(threshold=6)
print(a)
# [ 0  1  2 ... 12 13 14]
np.set_printoptions(threshold=np.iinfo(np.int).max)
print(a)
# [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

當前活動


我是 終身學(xué)習者“老馬”,,一個長期踐行“結(jié)伴式學(xué)習”理念的 中年大叔

我崇尚分享,,渴望成長,,于2010年創(chuàng)立了“LSGO軟件技術(shù)團隊”,并加入了國內(nèi)著名的開源組織“Datawhale”,,也是“Dre@mtech”,、“智能機器人研究中心”和“大數(shù)據(jù)與哲學(xué)社會科學(xué)實驗室”的一員。

愿我們一起學(xué)習,,一起進步,,相互陪伴,共同成長,。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多