成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NumPy 實(shí)戰(zhàn):十個高頻操作助你輕松搞定數(shù)據(jù)分析

開發(fā) 數(shù)據(jù)分析
本文將深入剖析 NumPy 中最常用且最重要的十個操作,幫助你快速掌握科學(xué)計算的核心技能!

NumPy(Numerical Python)是Python科學(xué)計算生態(tài)的核心庫,提供了高性能數(shù)組操作和數(shù)學(xué)函數(shù)。相比于Python原生列表,NumPy數(shù)組(ndarray)在內(nèi)存效率和計算速度上都有數(shù)量級的提升。

本文將深入剖析NumPy中最常用且最重要的十個操作,幫助你快速掌握科學(xué)計算的核心技能!

1. 數(shù)組的創(chuàng)建與初始化

數(shù)組的創(chuàng)建是所有操作的基礎(chǔ),NumPy提供了多種方式來初始化數(shù)組。

import numpy as np

# 創(chuàng)建全0數(shù)組
zeros = np.zeros((3, 4))  # 3行4列全0矩陣

# 創(chuàng)建全1數(shù)組
ones = np.ones((2, 5))    # 2行5列全1矩陣

# 創(chuàng)建等差數(shù)列
linspace = np.linspace(0, 10, 5)  # 從0到10,分成5個等分

# 創(chuàng)建隨機(jī)數(shù)數(shù)組
random = np.random.rand(3, 3)  # 3x3均勻分布隨機(jī)數(shù)

# 創(chuàng)建空數(shù)組(未初始化)
empty = np.empty(5)  # 長度為5的空數(shù)組

關(guān)鍵點(diǎn)解析:

  • np.zeros()和np.ones():常用于初始化結(jié)果數(shù)組。
  • np.linspace():適用于生成等間隔樣本。
  • np.random.rand():隨機(jī)數(shù)生成是數(shù)據(jù)科學(xué)的基礎(chǔ)。

2. 數(shù)組的索引與切片

數(shù)組的索引和切片是數(shù)據(jù)訪問的核心操作。

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

# 單元素索引
print(arr[2])  # 輸出:3

# 切片操作
print(arr[1:4])  # 輸出:[2 3 4]

# 多維數(shù)組切片
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])
print(matrix[1:, 1:])  # 輸出:[[5 6] [8 9]]

關(guān)鍵點(diǎn)解析:

  • NumPy支持多維索引,切片語法與Python列表類似。
  • 切片操作是視圖,不會復(fù)制數(shù)據(jù),適用于內(nèi)存優(yōu)化。

3. 數(shù)組的形狀與重塑

數(shù)組的形狀決定了數(shù)據(jù)的組織方式,重塑操作可以改變數(shù)據(jù)的維度。

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

# 查看形狀
print(arr.shape)  # 輸出:(2, 3)

# 改變形狀
reshaped = arr.reshape(3, 2)
print(reshaped)  # 輸出:[[1 2] [3 4] [5 6]]

# 扁平化數(shù)組
flattened = arr.flatten()
print(flattened)  # 輸出:[1 2 3 4 5 6]

關(guān)鍵點(diǎn)解析:

  • reshape():改變數(shù)組維度,但不改變數(shù)據(jù)。
  • flatten():將多維數(shù)組轉(zhuǎn)換為一維數(shù)組。

4. 數(shù)組的數(shù)值運(yùn)算

NumPy提供了豐富的數(shù)學(xué)運(yùn)算功能,支持向量化操作。

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 基本運(yùn)算
print(arr1 + arr2)  # 輸出:[5 7 9]
print(arr1 * arr2)  # 輸出:[4 10 18]

# 數(shù)學(xué)函數(shù)
print(np.sin(arr1))  # 輸出:[0.8415 0.9093 0.1411]
print(np.exp(arr2))  # 輸出:[54.5981 148.4132 403.4288]

關(guān)鍵點(diǎn)解析:

  • NumPy的運(yùn)算是向量化的,避免了顯式循環(huán),效率極高。
  • np.sin()、np.exp()等函數(shù)支持對整個數(shù)組進(jìn)行操作。

5. 數(shù)組的統(tǒng)計分析

NumPy提供了豐富的統(tǒng)計函數(shù),適用于數(shù)據(jù)分析。

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

# 基本統(tǒng)計量
print(np.mean(arr))     # 輸出:3.0
print(np.median(arr))   # 輸出:3.0
print(np.std(arr))      # 輸出:1.4142

# 最值運(yùn)算
print(np.min(arr))      # 輸出:1
print(np.max(arr))      # 輸出:5

# 累積運(yùn)算
print(np.cumsum(arr))   # 輸出:[1 3 6 10 15]

關(guān)鍵點(diǎn)解析:

  • np.mean()、np.median()等函數(shù)是數(shù)據(jù)分析的基礎(chǔ)。
  • np.cumsum():計算累積和,常用于時間序列分析。

6. 布爾索引與條件篩選

布爾索引是數(shù)據(jù)篩選的核心操作。

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

# 布爾索引
mask = arr > 3
print(arr[mask])  # 輸出:[4 5]

# 條件篩選
filtered = arr[arr % 2 == 0]
print(filtered)    # 輸出:[2 4]

關(guān)鍵點(diǎn)解析:

  • 布爾索引通過布爾數(shù)組(True/False)選擇符合條件的元素。
  • 常用于數(shù)據(jù)清洗和特征篩選。

7. 數(shù)組的隨機(jī)數(shù)生成

隨機(jī)數(shù)生成是科學(xué)計算和機(jī)器學(xué)習(xí)的基礎(chǔ)。

# 生成均勻分布隨機(jī)數(shù)
uniform = np.random.rand(3, 3)
print(uniform)  # 輸出:3x3均勻分布隨機(jī)數(shù)矩陣

# 生成正態(tài)分布隨機(jī)數(shù)
normal = np.random.randn(5)  # 5個標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù)
print(normal)

關(guān)鍵點(diǎn)解析:

  • np.random.rand():生成[0,1)區(qū)間均勻分布隨機(jī)數(shù)。
  • np.random.randn():生成均值為0,方差為1的正態(tài)分布隨機(jī)數(shù)。

8. 數(shù)組的廣播機(jī)制

廣播機(jī)制是NumPy的核心功能之一,允許不同形狀的數(shù)組進(jìn)行運(yùn)算。

arr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])

# 廣播運(yùn)算
result = arr1 + arr2  # arr2被廣播為3x3矩陣
print(result)

關(guān)鍵點(diǎn)解析:

  • 廣播機(jī)制允許形狀不同的數(shù)組進(jìn)行運(yùn)算,但需滿足特定規(guī)則。
  • 廣播是臨時的,不會改變數(shù)組的形狀。

9. 數(shù)組的文件操作

NumPy支持高效的文件讀寫操作,適用于大數(shù)據(jù)處理。

# 保存數(shù)組到文件
np.save('array_data.npy', arr)

# 從文件加載數(shù)組
loaded_arr = np.load('array_data.npy')
print(loaded_arr)

關(guān)鍵點(diǎn)解析:

  • .npy文件是NumPy的二進(jìn)制文件格式,讀寫速度快。
  • 常用于數(shù)據(jù)持久化存儲。

10. 矩陣運(yùn)算與線性代數(shù)

NumPy提供了強(qiáng)大的線性代數(shù)運(yùn)算功能。

matrix1 = np.array([[1, 2],
                    [3, 4]])
matrix2 = np.array([[5, 6],
                    [7, 8]])

# 矩陣乘法
product = np.dot(matrix1, matrix2)
print(product)

# 特征值分解
eigenvalues, eigenvectors = np.linalg.eig(matrix1)
print(eigenvalues)

關(guān)鍵點(diǎn)解析:

  • np.dot():矩陣乘法,是線性代數(shù)的基礎(chǔ)。
  • np.linalg模塊提供了豐富的線性代數(shù)函數(shù)。

結(jié)語:從操作到實(shí)戰(zhàn)的跨越

通過掌握這10個NumPy核心操作,你已經(jīng)具備了進(jìn)行科學(xué)計算和數(shù)據(jù)分析的基礎(chǔ)能力。但需記住:實(shí)踐是檢驗真理的唯一標(biāo)準(zhǔn)。建議你:

  • 動手實(shí)踐:立即在Jupyter Notebook中復(fù)現(xiàn)文中代碼。
  • 結(jié)合業(yè)務(wù):將這些操作應(yīng)用到實(shí)際項目中。
  • 持續(xù)學(xué)習(xí):探索NumPy的更多高級功能。
責(zé)任編輯:趙寧寧 來源: Python數(shù)智工坊
相關(guān)推薦

2025-05-08 10:20:00

NumPyPython

2024-01-30 00:36:41

Python機(jī)器學(xué)習(xí)

2024-02-20 14:25:39

Python數(shù)據(jù)分析

2024-10-15 10:40:09

2020-07-14 08:48:07

數(shù)據(jù)分析技術(shù)IT

2011-03-03 09:12:24

Chrome快捷鍵

2024-09-09 18:18:45

2024-04-28 11:39:17

紹csvkit數(shù)據(jù)分析

2025-06-10 08:25:00

Python文本分析數(shù)據(jù)分析

2023-10-04 00:17:00

SQL數(shù)據(jù)庫

2023-11-13 08:16:08

MySQL數(shù)據(jù)數(shù)據(jù)庫

2021-12-24 08:18:01

CIO數(shù)據(jù)分析

2023-10-31 19:28:48

GitHub存儲前端

2010-06-04 09:08:56

2022-03-08 14:10:10

數(shù)據(jù)分析數(shù)據(jù)集Python

2021-05-14 13:53:28

大數(shù)據(jù)數(shù)據(jù)分析工具

2025-04-16 08:10:00

PandasPython數(shù)據(jù)分析

2024-09-09 16:50:21

2010-05-27 15:50:39

2023-03-19 22:51:11

可視化項目可視化圖表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久精品一区 | 精品国产视频 | 国产一区二区三区免费观看在线 | 337p日韩| 国产福利视频 | 91亚洲精品在线 | 中文在线a在线 | 亚洲人在线观看视频 | 成人影院在线 | 一区二区精品 | 中文字幕亚洲欧美 | 日日爱av| 亚洲国产精品久久 | 欧美性jizz18性欧美 | 国产在线一区二区三区 | 欧美精品久久 | 日韩成人av在线播放 | 欧美一区二不卡视频 | 狠狠干2020| 日韩中文字幕视频在线观看 | 国产91成人| 精品久久久久久久久久久久久久 | 亚洲精品一 | 亚洲一区久久 | 欧美综合在线观看 | 国产成人精品一区二区三 | 狠狠爱视频 | 午夜ww | av在线黄 | 久久av一区二区三区 | 一区视频 | 黄色一级大片在线免费看产 | 国产成人综合久久 | 国产精品久久久久久久久久久久久久 | 免费看91 | 黄色大片免费看 | 久久久天堂 | 羞羞视频免费观看入口 | 欧美手机在线 | 亚洲一区二区三区高清 | 91精品久久久久久久久久入口 |