(5) 深入探索Python-Pandas庫的核心數據結構:Series詳解

目錄

  • 前言
  • 1. Series 簡介
  • 2. Series的特點
  • 3. Series的創建
    • 3.1 使用列表創建Series
    • 3.2 使用字典創建Series
    • 3.3 使用列表和自定義索引創建Series
    • 3.4 指定數據類型和名稱
  • 4. Series的索引/切片
    • 4.1 下標索引:基于整數位置的索引
    • 4.2 基于標簽的索引
    • 4.3 切片
    • 4.4 使用.loc[]和.iloc[]進行索引
  • 5. 基本運算
    • 5.1 算術運算
      • 5.1.1 加法(+)
    • 5.2 比較運算
    • 5.3 邏輯運算
    • 6. 基本屬性和方法
      • 6.1 基本屬性示例
      • 6.2 基本方法示例
      • 6.3 檢測缺失數據的方法
  • 7. 金融方面的幾個series示例
    • 7.1 示例一:股票價格數據
    • 7.2 示例二:收益率數據
    • 7.3 示例三:交易量數據
  • 8. 總結

前言

大家好!我是架構筑夢的Cherry,本期跟大家分享的知識是 pandas 數據結構——DataFrame。

作者的【 Python智能工坊】專欄及【少兒編程Python:趣味編程,探索未來】正在火熱更新中🔥🔥🔥,如果本文對您有幫助,歡迎大家點贊 + 評論 + 收藏 !

1. Series 簡介

pandas數據結構中的Series是一個一維數組對象,能夠保存任何數據類型(整數、字符串、浮點數、Python對象等),并有一個與之關聯的標簽序列,這些標簽被稱為“索引”(index)。索引與數據是一一對應的,通過索引可以快速獲取、更新或刪除數據。Series在pandas數據處理中起著至關重要的作用,是構建更復雜數據結構(如DataFrame)的基礎。

以下是關于pandas Series的詳細解釋:

  • 定義:Series類似于一維數組或列表,但它有一個顯式的索引,用于標記數據。
  • 組成:Series由兩部分組成——值(values)索引(index)

在金融數據分析中,pandas的Series數據結構扮演著重要角色。它可以用來存儲股價、交易量、市盈率等連續或離散的數據,并通過索引輕松訪問和操作這些數據。Series支持多種數據類型,允許用戶根據實際需求靈活使用。

2. Series的特點

  • 一維數組:Series是一維的,意味著它只有一個軸(或維度),類似于Python中的列表。
  • 索引:每個Series都有一個索引,用于對數據進行標記。索引可以是整數、字符串、日期等類型。如果不指定索引,pandas將默認創建一個從0開始的整數索引。
  • 數據類型:Series可以容納不同數據類型的元素,包括整數、浮點數、字符串、Python對象等。
  • 大小不變性:Series的大小在創建后是不變的,但可以通過某些操作(如append或delete)來改變。
  • 操作:Series支持各種操作,如數學運算、統計分析、字符串處理等。
  • 缺失數據:Series可以包含缺失數據,pandas使用NaN(Not a Number)來表示缺失或無值。

3. Series的創建

Series可以通過多種方式進行創建,包括但不限于:

  • 使用列表或數組:可以傳遞一個列表或數組作為數據源來創建Series。
  • 指定索引:可以為每個元素指定索引標簽。
  • 使用字典:字典的鍵成為索引,值成為數據。
  • 使用numpy的ndarray:可以直接使用numpy數組來創建Series。

pd.Series()是創建Series的常用方法,格式如下:

pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)

參數說明:

  • data:這是必須的參數,可以是列表、數組、字典等,用于存儲Series中的數據。
  • index:可選參數,用于指定索引標簽。如果不提供,則默認使用從0開始的整數索引。
  • dtype:可選參數,用于指定數據類型。如果未指定,pandas會根據數據內容自動推斷數據類型。
  • name:可選參數,用于給Series命名。命名后的Series在打印時會顯示名稱,方便識別。
  • copy:可選參數,默認為False。如果為True,則會將數據復制到新的Series中,原始數據不受影響。
  • fastpath:是否啟用快速路徑。默認為 False。啟用快速路徑可能會在某些情況下提高性能。

下面是幾個創建 Series 的實例:

3.1 使用列表創建Series

import pandas as pd
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)

輸出:

0    1
1    2
2    3
3    4
4    5
dtype: int64

輸出結果說明:
第一列:0-4 為 索引值,默認從 0 開始;
第二列:1-5 為 數據;
dtype: int64 為該 Series 變量的數據類型;

3.2 使用字典創建Series

import pandas as pd
data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
s2 = pd.Series(data)
print(s2)

輸出:

a    1
b    2
c    3
d    4
e    5
dtype: int64

3.3 使用列表和自定義索引創建Series

import pandas as pd
labels = ['one', 'two', 'three', 'four', 'five']
s3 = pd.Series([1, 2, 3, 4, 5], index=labels)
print(s3)

輸出:

one      1
two      2
three    3
four     4
five     5
dtype: int64

3.4 指定數據類型和名稱

import pandas as pd
s4 = pd.Series([1.1, 2.2, 3.3, 4.4, 5.5], dtype=float, name='numbers')
print(s4)

輸出:

0    1.1
1    2.2
2    3.3
3    4.4
4    5.5
Name: numbers, dtype: float64

注意:
當使用字典創建Series時,如果字典的鍵不是有序的(如Python 3.7之前的字典),則Series的索引順序可能與字典的鍵插入順序不同。但在Python 3.7及以后的版本中,字典保持插入順序。
索引在Series中非常重要,它不僅用于標記數據,還用于數據的對齊和選擇。因此,在創建Series時,應仔細考慮索引的設置。
如果在創建Series時提供了與數據長度不一致的索引,pandas會自動對缺失的數據使用NaN(Not a Number)進行填充。
默認情況下,如果不指定索引,pandas會為Series創建一個從0開始的整數索引。這種索引被稱為“基于位置的索引”或“隱式索引”。在大多數情況下,這種索引對于數據分析和處理已經足夠。然而,在需要明確標記或選擇數據的情況下,可以手動指定索引標簽。

4. Series的索引/切片

4.1 下標索引:基于整數位置的索引

import pandas as pd# 創建一個默認的Series
s = pd.Series([10, 20, 30, 40, 50])# 使用基于位置的索引訪問數據
print(s[0])  
print(s[2:4])  

輸出:

10
2    30
3    40
dtype: int64

4.2 基于標簽的索引

在pandas的Series中,基于標簽的索引是一種強大的功能,它允許你通過Series的索引標簽來直接訪問或操作數據。這種索引方式特別適用于具有明確標簽(如股票名稱、日期等)的數據集。

當你創建一個Series并為其指定了索引時,你就可以使用這些索引標簽來訪問、修改或選擇數據。

下面是基于標簽索引的示例:
假設我們有一個Series,它包含了幾個股票在特定日期的收盤價,并使用了股票代碼作為索引標簽。

import pandas as pd# 創建一個帶有股票代碼作為索引的Series
stocks = pd.Series([100.5, 201.2, 150.8], index=['AAPL', 'MSFT', 'GOOGL'])# 使用基于標簽的索引訪問數據
print(stocks['AAPL'])  # 輸出: 100.5# 使用多個標簽選擇數據(返回一個Series)
subset = stocks[['AAPL', 'GOOGL']]
print(subset)
# 輸出:
# AAPL    100.5
# GOOGL   150.8
# dtype: float64# 修改基于標簽的索引的數據
stocks['AAPL'] = 101.0
print(stocks)
# 輸出:
# AAPL    101.0
# MSFT    201.2
# GOOGL   150.8
# dtype: float64

在上面的示例中,我們首先創建了一個Series對象stocks,其中包含了三個股票代碼(‘AAPL’, ‘MSFT’, ‘GOOGL’)和它們對應的收盤價。然后,我們使用這些股票代碼作為標簽來訪問和修改數據。

4.3 切片

與Python中的列表或NumPy數組類似,可以使用切片來訪問Series的子集。
無論是基于位置的索引還是基于標簽的索引,你都可以使用切片來訪問數據的子集。不過,當使用基于標簽的索引進行切片時,你需要確保切片的標簽在Series的索引中是存在的,并且它們是連續的。

# 使用自定義索引的Series
s = pd.Series([10, 20, 30, 40, 50], index=['A', 'B', 'C', 'D', 'E'])# 使用基于標簽的切片(只有當標簽連續時才有效)
print(s['A':'C'])  # 輸出: A    10#      B    20#      C    30# dtype: int64# 使用基于位置的切片(始終有效)
print(s[1:4])  # 輸出: B    20#      C    30#      D    40# dtype: int64

注意:如果基于標簽的切片中的標簽不連續或不存在于索引中,那么你會得到一個KeyError。如果你想要選擇不連續標簽的數據,你需要使用索引的loc屬性,并傳入一個標簽列表。

4.4 使用.loc[]和.iloc[]進行索引

對于更復雜的數據選擇或操作,你可以使用.loc[]方法。雖然對于單個標簽的訪問,直接使用標簽和.loc[]是等效的,但.loc[]在處理多個標簽或條件選擇時更加靈活。

  • .loc[]:基于標簽的索引。
  • .iloc[]:基于位置的索引(總是整數位置)。
# 使用.loc[]基于標簽索引
print(s.loc['A':'C'])# 使用.iloc[]基于位置索引
print(s.iloc[1:4])

輸出:

A    10
B    20
C    30
dtype: int64
B    20
C    30
D    40
dtype: int64

.loc[]和.iloc[]提供了更明確和靈活的索引方式,特別是在處理復雜的數據集時。

5. 基本運算

在pandas庫中,Series對象支持多種基本運算,這些運算包括算術運算、比較運算和邏輯運算。
以下是關于Series基本運算的詳細解釋:

5.1 算術運算

算術運算包括加、減、乘、除等基本操作。
在pandas中,Series對象之間可以直接進行這些運算,且pandas會自動處理索引對齊。

5.1.1 加法(+)

兩個Series相加時,相同索引位置的元素會相加。如果兩個Series長度相同且索引一致,則直接對應相加;如果長度不同或索引不完全對應,結果的索引將是兩個Series索引的并集,不存在的索引將填充為NaN(表示非數字)。

示例:

import pandas as pd
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['a', 'b', 'c'])
result_add = s1 + s2
print(result_add)  # 輸出:a    5, b    7, c    9, dtype: int64
  • 減法(-)乘法(*)除法(/):這些運算與加法類似,都是基于索引進行對應元素的運算。

5.2 比較運算

比較運算用于比較兩個Series的元素值,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。這些運算會返回一個布爾類型的Series,表示每個元素比較的結果。

示例:

s1 = pd.Series([1, 2, 3])
s2 = pd.Series([2, 2, 2])
result_eq = s1 == s2  # 比較是否相等
print(result_eq)  # 輸出:0    False, 1     True, 2    False, dtype: bool

5.3 邏輯運算

邏輯運算在pandas中主要用于合并布爾Series。但請注意,直接對兩個Series對象進行邏輯運算(如and、or)在pandas中并不直接支持,因為這會引發錯誤。相反,你應該使用按元素比較產生的布爾Series,并使用&(邏輯與)和|(邏輯或)等操作符進行邏輯運算。

示例:

s1_gt_1 = s1 > 1  # s1中大于1的元素
s2_lt_2 = s2 < 2  # s2中小于2的元素
result_logical = s1_gt_1 & s2_lt_2  # 邏輯與運算
print(result_logical)  # 輸出:0    False, 1    False, 2    False, dtype: bool

在這個例子中,由于s1s2中沒有同時滿足s1 > 1s2 < 2的元素,所以結果全為False。

pandas的Series對象支持豐富的運算操作,包括算術運算、比較運算和邏輯運算。這些運算都是基于索引進行的,能夠方便地處理和分析數據。在實際應用中,可以根據需要選擇合適的運算操作來處理和分析數據。

6. 基本屬性和方法

  • 屬性:包括values(數據值)、index(索引)、dtype(數據類型)、name(名稱)等。
  • 方法:提供了許多用于數據操作和分析的方法,如mean()(計算平均值)、std()(計算標準差)、unique()(返回唯一值)等。

下面是基本屬性和方法的示例:

6.1 基本屬性示例

首先,創建一個Series對象

import pandas as pds = pd.Series([100, 150, 110, 130, 150, 150], index=['語文', '數學', '英語', 'Python', 'Pandas', 'NumPy'],name="考試成績")

下面,是訪問的基本屬性:

  • shape:返回Series的形狀(通常是一個元組,對于Series來說,通常只有一個元素表示長度)
print(s.shape)  # 輸出: (6,)
  • size:返回Series的長度
print(s.size)  # 輸出: 6
  • index:返回Series的索引
print(s.index)  # 輸出: Index(['語文', '數學', '英語', 'Python', 'Pandas', 'NumPy'], dtype='object')
  • values:返回Series的值
print(s.values)  # 輸出: array([100, 150, 110, 130, 150, 150], dtype=int64)
  • name:返回Series的名稱
print(s.name)  # 輸出: 考試成績

6.2 基本方法示例

  • head():查看前幾條數據,默認5條
print(s.head())  # 輸出前5條數據
  • tail():查看后幾條數據,默認5條
print(s.tail())  # 輸出后5條數據
  • describe:返回描述統計信息
print(s.describe()) 

輸出:

count      6.000000
mean     131.666667
std       22.286020
min      100.000000
25%      115.000000
50%      140.000000
75%      150.000000
max      150.000000
Name: 考試成績, dtype: float64
  • idxmax:獲取最大值和最小值的索引
print(s.idxmax())   # 輸出:數學
print(s.idxmin())   # 輸出:語文
  • dtype:數據類型
print(s.dtype)    # 輸出:int64
  • sum:求和
print(s.sum())  # 輸出:790
  • mean:平均值
print(s.mean())   # 輸出:131.66666666666666
  • max:最大值
print(s.max())  # 輸出:150
  • min:最小值
print(s.min())   # 輸出:100
  • std:標準差
print(s.std()) # 輸出:22.28601953392904
  • astype:將 Series 轉換為另一種數據類型
s = s.astype('float64')  # 將 Series 中的所有元素轉換為 float64 類型

6.3 檢測缺失數據的方法

雖然在這個示例中沒有缺失數據,但我們可以演示如何使用isnull()notnull()方法。

s_with_missing = pd.Series([100, 150, None, 130, 150, 150], index=['語文', '數學', '英語', 'Python', 'Pandas', 'NumPy'],name="考試成績")print(s_with_missing.isnull())  # 輸出布爾序列,表示哪些位置是缺失值

以上展示了pandas.Series的一些基本屬性和方法。這些屬性和方法提供了靈活且強大的工具來操作和分析一維數據。通過結合索引、值和屬性,我們可以有效地處理數據并執行各種操作。

7. 金融方面的幾個series示例

在金融領域,Series 可以用于存儲和處理各種金融數據,如股票價格、收益率、交易量等。以下是幾個與金融相關的 Series 示例:

7.1 示例一:股票價格數據

import pandas as pd# 假設有以下股票數據
data = {'日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'],'收盤價': [100.0, 101.5, 102.1, 100.8, 103.0]}# 將數據轉換為pandas的DataFrame,然后選取'收盤價'列轉換為Series
df = pd.DataFrame(data)
stock_prices = df.set_index('日期')['收盤價']# 顯示Series
print(stock_prices)

輸出:

日期
2023-01-01    100.0
2023-01-02    101.5
2023-01-03    102.1
2023-01-04    100.8
2023-01-05    103.0
Name: 收盤價, dtype: float64

7.2 示例二:收益率數據

# 假設有以下收益率數據
dates = pd.date_range(start='2023-01-01', periods=5)
returns = pd.Series([0.01, 0.015, -0.005, 0.003, 0.02], index=dates)# 顯示Series
print(returns)

輸出:

2023-01-01    0.01
2023-01-02    0.02
2023-01-03   -0.01
2023-01-04    0.00
2023-01-05    0.02
dtype: float64

7.3 示例三:交易量數據

# 假設有以下交易量數據
trade_dates = pd.date_range(start='2023-01-01', periods=4, freq='B')  # 只包括工作日
volumes = pd.Series([10000, 12000, 9800, 11500], index=trade_dates)# 顯示Series
print(volumes)

輸出:

2023-01-02    10000
2023-01-03    12000
2023-01-04     9800
2023-01-05    11500
dtype: int64

這些示例展示了如何使用 pandas 中的 Series 來存儲和處理金融數據。在實際應用中,這些數據可能來自多種來源,如數據庫、API、文件等。處理這些數據時,可能會涉及到數據清洗、轉換、分析和可視化等多個步驟。通過使用 Series 的各種屬性和方法,可以方便地進行這些操作,為金融分析和決策提供支持。

8. 總結

pandas的Series數據結構提供了一種靈活且功能強大的方式來存儲和處理一維數據。通過顯式索引的引入,Series提供了更多的數據處理和分析選項,使其成為數據分析師和數據科學家的重要工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41131.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

觸感網絡:WebKit 振動(Vibration API)的交互新維度

觸感網絡&#xff1a;WebKit 振動&#xff08;Vibration API&#xff09;的交互新維度 在數字化時代&#xff0c;用戶體驗的追求已經不僅限于視覺和聽覺&#xff0c;觸覺反饋也逐漸成為網頁交互設計的重要組成部分。WebKit 作為眾多現代瀏覽器的核心技術引擎&#xff0c;對振動…

Linux 文件描述符 fd

當然&#xff0c;以下是一些關于 Linux 文件描述符&#xff08;fd&#xff09;的示例&#xff0c;以清晰、分點表示和歸納的形式給出&#xff1a; 1. 文件描述符的基本概念和用途 定義&#xff1a;文件描述符是一個非負整數&#xff0c;用于指代被進程所打開或使用的文件、套…

Leetcode 59. 螺旋打印矩陣

題目描述 給你一個正整數 n &#xff0c;生成一個包含 1 到 n2 所有元素&#xff0c;且元素按順時針順序螺旋排列的 n x n 正方形矩陣 matrix 。 示例 1&#xff1a; 輸入&#xff1a;n 3 輸出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]] 示例 2&#xff1a; 輸入&#xff1a;n…

c++中new和delete重載的一點介紹

通義千問中作答的&#xff0c;感覺回答的比自己總結的好&#xff1a; 實際上&#xff0c;你可以在C中重載new和delete運算符。重載new和delete允許你自定義內存分配和釋放的行為&#xff0c;這對于實現特殊的內存管理策略非常有用&#xff0c;例如&#xff1a; 內存池&#xf…

系統遷移從CentOS7.9到Rocky8.9

我有兩臺阿里云上的服務器是CentOS7.9&#xff0c;由于CentOS7已經停止支持&#xff0c;后續使用的話會有安全漏洞&#xff0c;所以需要盡快遷移&#xff0c;個人使用的話目前兼容性好的還是RockyLinux8&#xff0c;很多腳本改改就能用了。 一、盤點系統和遷移應用 查看當前系…

AI在軟件開發中的革新與未來挑戰

目錄 前言 AI工具的廣泛應用與優勢 AI與開發者技能需求的互動關系 AI的未來展望與面臨的挑戰 結語 前言 在當今快速發展的技術領域中&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;正以前所未有的方式改變著軟件開發的面貌。從代碼生成到錯誤檢測&#xff0c;再…

linux內核源碼學習所需基礎

1.面向對象的思想&#xff0c;尤其是oopc的實現方式。 2.設計模式。 這兩點需要內核源碼學習者不僅要會c和匯編&#xff0c;還要接觸一門面向對象的語言&#xff0c;比如c&#xff0b;&#xff0b;/java/python等等任意一門都行&#xff0c;起碼要了解面向對象的思想。 另外li…

MyBatis 框架核心及面試知識要點

1、什么是 MyBatis? MyBatis 是一款優秀的支持自定義 SQL 查詢、存儲過程和高級映射的持久層框架&#xff0c;消除了 幾乎所有的 JDBC 代碼和參數的手動設置以及結果集的檢索 。 MyBatis 可以使用 XML,或注解進 行配置和映射&#xff0c;MyBatis 通過將參數映射到配置的 SOL,形…

FastSpeech2中文語音合成就步解析:TTS數據訓練實戰篇

參考github網址&#xff1a; GitHub - roedoejet/FastSpeech2: An implementation of Microsoft’s “FastSpeech 2: Fast and High-Quality End-to-End Text to Speech” 數據訓練所用python 命令&#xff1a; python3 train.py -p config/AISHELL3/preprocess.yaml -m confi…

ida動態調試-cnblog

ida動態調試 傳遞啟動ida服務 android_server在ida\dbgsrv目錄中 adb push android_server /data/local/tmp/chmod 755 /data/local/tmp/android_server /data/local/tmp/android_serveradb forward tcp:23946 tcp:23946ida報錯:大多是手機端口被占用 報錯提示&#xff1a; …

java面試-java基礎(下)

文章目錄 一、和equals區別&#xff1f;二、hashcode方法作用&#xff1f;兩個對象的hashCode方法相同&#xff0c;則equals方法也一定為true嗎&#xff1f;三、為什么重寫equals方法就一定要重寫hashCode方法&#xff1f;四、Java中的參數傳遞時傳值呢還是傳引用&#xff1f;五…

期末上分站——計組(3)

復習題21-42 21、指令周期是指__C_。 A. CPU從主存取出一條指令的時間 B. CPU執行一條指令的時間 C. CPU從主存取出一條指令的時間加上執行這條指令的時間。 D. 時鐘周期時間 22、微型機系統中外設通過適配器與主板的系統總線相連接&#xff0c;其功能是__D_。 A. 數據緩沖和…

數據庫可視化管理工具dbeaver試用及問題處理。

本文記錄了在內網離線安裝數據庫可視化管理工具dbeaver的過程和相關問題處理方法。 一、下載dbeaver https://dbeaver.io/download/ 筆者測試時Windows平臺最新版本為&#xff1a;dbeaver-ce-24.1.1-x86_64-setup.exe 二、安裝方法 一路“下一步”即可 三、問題處理 1、問…

【深度學習】vscode 命令行下的debug

其實我一直知道vscode可以再命令行下進行debug。 比如 python aaa.py --bb1 --cc2 以前的做法是 去aaa.py 寫死bb和cc 然后直接debug。 直到今天我遇到這個&#xff1a; hydra hydra.main(version_baseNone, config_name/home/justin/Desktop/code/python_project/WASB-SBDT-m…

Truffle學習筆記

Truffle學習筆記 安裝truffle, 注意: 雖然目前truffle最新版是 5.0.0, 但是經過我實踐之后, 返現和v4有很多不同(比如: web3.eth.accounts; 都獲取不到賬戶), 還是那句話: “nodejs模塊的版本問題會搞死人的 !” 目前4.1.15之前的版本都不能用了, 只能安裝v4.1.15 npm instal…

新手學Cocos報錯 [Assets] Failed to open

兩個都在偏好設置里面調&#xff08;文件下面的偏好設置&#xff09;&#xff1a; 1.設置中文&#xff1f; 2.報錯 [Assets] Failed to open&#xff1f; 這樣在點擊打開ts文件的時候就不會報錯&#xff0c;并且用vscode編輯器打開了&#xff0c; 同樣也可以改成你們自己喜歡…

LabVIEW在圖像處理中的應用

abVIEW作為一種圖形化編程環境&#xff0c;不僅在數據采集和儀器控制領域表現出色&#xff0c;還在圖像處理方面具有強大的功能。借助其Vision Development Module&#xff0c;LabVIEW提供了豐富的圖像處理工具&#xff0c;廣泛應用于工業檢測、醫學影像、自動化控制等多個領域…

Apache Seata應用側啟動過程剖析——RM TM如何與TC建立連接

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 Apache Seata應用側啟動過程剖析——RM & TM如何與TC建立連接 前言 看過官網 README 的第…

Android最近任務顯示的圖片

Android最近任務顯示的圖片 1、TaskSnapshot截圖1.1 snapshotTask1.2 drawAppThemeSnapshot 2、導航欄顯示問題3、Recentan按鍵進入最近任務 1、TaskSnapshot截圖 frameworks/base/services/core/java/com/android/server/wm/TaskSnapshotController.java frameworks/base/cor…

IPython 性能評估工具的較量:%%timeit 與 %timeit 的差異解析

IPython 性能評估工具的較量&#xff1a;%%timeit 與 %timeit 的差異解析 在 IPython 的世界中&#xff0c;性能評估是一項至關重要的任務。%%timeit 和 %timeit 是兩個用于測量代碼執行時間的魔術命令&#xff0c;但它們之間存在一些關鍵的差異。本文將深入探討這兩個命令的不…