
- NumPy 教程
- NumPy - 首頁
- NumPy - 簡介
- NumPy - 環境
- NumPy 陣列
- NumPy - Ndarray 物件
- NumPy - 資料型別
- NumPy 建立和運算元組
- NumPy - 陣列建立例程
- NumPy - 陣列操作
- NumPy - 從現有資料建立陣列
- NumPy - 從數值範圍建立陣列
- NumPy - 遍歷陣列
- NumPy - 重塑陣列
- NumPy - 連線陣列
- NumPy - 堆疊陣列
- NumPy - 分割陣列
- NumPy - 展平陣列
- NumPy - 轉置陣列
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高階索引
- NumPy 陣列屬性和操作
- NumPy - 陣列屬性
- NumPy - 陣列形狀
- NumPy - 陣列大小
- NumPy - 陣列步長
- NumPy - 陣列元素大小
- NumPy - 廣播
- NumPy - 算術運算
- NumPy - 陣列加法
- NumPy - 陣列減法
- NumPy - 陣列乘法
- NumPy - 陣列除法
- NumPy 高階陣列操作
- NumPy - 交換陣列的軸
- NumPy - 位元組交換
- NumPy - 副本和檢視
- NumPy - 元素級陣列比較
- NumPy - 過濾陣列
- NumPy - 連線陣列
- NumPy - 排序、搜尋和計數函式
- NumPy - 搜尋陣列
- NumPy - 陣列的並集
- NumPy - 查詢唯一行
- NumPy - 建立日期時間陣列
- NumPy - 二元運算子
- NumPy - 字串函式
- NumPy - 數學函式
- NumPy - 統計函式
- NumPy - 矩陣庫
- NumPy - 線性代數
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 繪製直方圖
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高階操作
- NumPy - 排序陣列
- NumPy - 沿軸排序
- NumPy - 使用花式索引排序
- NumPy - 結構化陣列
- NumPy - 建立結構化陣列
- NumPy - 操作結構化陣列
- NumPy - 欄位訪問
- NumPy - 記錄陣列
- Numpy - 載入陣列
- Numpy - 儲存陣列
- NumPy - 將值追加到陣列
- NumPy - 交換陣列的列
- NumPy - 向陣列插入軸
- NumPy 處理缺失資料
- NumPy - 處理缺失資料
- NumPy - 識別缺失值
- NumPy - 刪除缺失資料
- NumPy - 估算缺失資料
- NumPy 效能最佳化
- NumPy - 使用陣列進行效能最佳化
- NumPy - 使用陣列進行向量化
- NumPy - 陣列的記憶體佈局
- Numpy 線性代數
- NumPy - 線性代數
- NumPy - 矩陣庫
- NumPy - 矩陣加法
- NumPy - 矩陣減法
- NumPy - 矩陣乘法
- NumPy - 元素級矩陣運算
- NumPy - 點積
- NumPy - 矩陣求逆
- NumPy - 行列式計算
- NumPy - 特徵值
- NumPy - 特徵向量
- NumPy - 奇異值分解
- NumPy - 求解線性方程組
- NumPy - 矩陣範數
- NumPy 元素級矩陣運算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位數
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合運算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 並集
- NumPy - 差集
- NumPy 有用資源
- NumPy 編譯器
- NumPy - 快速指南
- NumPy - 有用資源
- NumPy - 討論
NumPy - 建立日期時間陣列
NumPy 中的日期時間陣列
日期時間陣列是儲存日期和時間值的陣列。NumPy 提供了datetime64 和timedelta64 資料型別,用於處理具有廣泛精度的日期和時間。
"datetime64" 型別表示日期和時間,而 "timedelta64" 表示日期或時間之間的差異。
建立日期時間陣列
在 NumPy 中,我們可以使用 array() 函式和 datetime64() 函式建立日期時間陣列 -
使用 np.array() 函式
您可以透過使用 numpy.array() 函式指定日期字串或時間戳來建立日期時間陣列。您需要將dtype 指定為datetime64 以確保陣列元素被視為日期時間物件。
以下是語法 -
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
其中,
- object: 這是您要轉換為 NumPy 陣列的輸入資料(例如,列表、元組或其他類似陣列的物件)。
- dtype: 指定陣列元素所需的的資料型別。如果未提供,NumPy 將從輸入資料推斷資料型別。
- copy: 如果為 True,則該函式將建立輸入資料的副本。如果為 False,則僅在必要時建立副本。
- order: 指定記憶體佈局順序。'C' 表示行優先(C 樣式)順序,'F' 表示列優先(Fortran 樣式)順序,'A' 或 'K' 可用於自動選擇順序。
- subok: 如果為 True,則傳遞 ndarray 的子類;如果為 False,則返回的陣列將強制為基類 ndarray。
- ndmin: 指定結果陣列應具有的最小維度數。如有必要,將在形狀的左側新增新的軸。
示例
在以下示例中,我們透過將 "dtype" 引數傳遞給 array() 函式,將日期字串列表轉換為 NumPy 陣列 -
import numpy as np # Creating a datetime array using date strings dates = np.array(['2024-08-01', '2024-08-15', '2024-09-01'], dtype='datetime64') print("Datetime Array:\n", dates)
以下是獲得的輸出 -
Datetime Array: ['2024-08-01' '2024-08-15' '2024-09-01']
使用 np.datetime64() 函式
NumPy 中的 datetime64() 函式用於建立日期和時間的陣列。此函式提供了一種處理日期和時間資料的方法,支援對時間序列資料進行操作。"datetime64" 資料型別允許日期和時間精度達到“納秒”級別。
以下是語法 -
numpy.datetime64(datetime_string, unit)
其中,
- datetime_string: 它是一個表示日期和/或時間的字串。此字串的格式必須與指定的單位匹配。
- unit (可選): 它指定時間單位(例如,Y、M、D、h、m、s、ms、us、ns)。單位定義日期和時間表示的精度。
示例
在這裡,我們建立單獨的日期時間物件並檢索從指定日期建立的 "datetime64" 物件陣列 -
import numpy as np # Creating individual datetime objects date1 = np.datetime64('2024-08-01') date2 = np.datetime64('2024-08-15') # Creating an array of datetime objects dates = np.array([date1, date2, np.datetime64('2024-09-01')]) print("Datetime Array:\n", dates)
這將產生以下結果 -
Datetime Array: ['2024-08-01' '2024-08-15' '2024-09-01']
建立具有特定頻率的日期時間陣列
在 NumPy 中建立具有特定頻率的日期時間陣列允許您生成遵循規則間隔的日期或時間序列,例如每日、每月、每小時等。
在 NumPy 中,您可以使用np.arange() 或np.linspace() 函式結合datetime64 資料型別來建立具有特定頻率的日期時間陣列。這些函式允許您在開始日期或時間和結束日期或時間之間生成均勻間隔的日期時間值。
使用 np.arange() 函式
np.arange() 函式用於建立具有指定頻率的日期時間陣列。關鍵引數包括開始日期或時間、結束日期或時間以及連續日期時間值之間的步長(頻率)。以下是語法 -
numpy.arange(start, stop, step, dtype='datetime64')
其中,
- start: 它是以 datetime64 格式表示的開始日期或時間。
- stop: 它是以 datetime64 格式表示的結束日期或時間(不包括)。
- step: 它是由 timedelta64 指定的連續日期/時間之間的頻率或間隔。
- dtype: 它就是資料型別,應該是 'datetime64'。
示例
在下面的示例中,我們正在建立一個從“2024 年 8 月 1 日”到“2024 年 8 月 10 日”的日期陣列,頻率為每天 -
import numpy as np # Creating a daily datetime array dates = np.arange('2024-08-01', '2024-08-11', dtype='datetime64[D]') print("Daily Datetime Array:", dates)
以下是上述程式碼的輸出 -
Daily Datetime Array: ['2024-08-01' '2024-08-02' '2024-08-03' '2024-08-04' '2024-08-05' '2024-08-06' '2024-08-07' '2024-08-08' '2024-08-09' '2024-08-10']
使用 np.linspace() 函式
雖然 np.arange() 函式通常用於建立具有特定頻率的日期時間陣列,但當您想要指定兩個日期時間值之間點的數量而不是間隔時,也可以使用 np.linspace() 函式。以下是語法 -
numpy.linspace(start, stop, num, dtype='datetime64')
其中,
- start: 它是以 "datetime64" 格式表示的開始日期時間值。
- stop: 它是以 "datetime64" 格式表示的結束日期時間值。
- num: 它是在 start 和 stop 之間生成的日期時間值的數目。
- dtype: 它就是資料型別,應該是 'datetime64'。
示例
在此示例中,我們正在建立一個日期時間陣列,該陣列在開始日期和結束日期之間具有 5 個均勻間隔的日期時間值 -
import numpy as np # Convert start and end dates to datetime64 start_date = np.datetime64('2024-08-01') end_date = np.datetime64('2024-08-10') # Calculate the difference in days between start and end date_range = np.arange(start_date, end_date + np.timedelta64(1, 'D')) # Use linspace on the integer values of dates datetimes = np.linspace(0, len(date_range)-1, num=5, dtype=int) # Map back to the original date range datetime_array = start_date + datetimes.astype('timedelta64[D]') print("Datetime Array with 5 Points:", datetime_array)
獲得的輸出如下所示 -
Datetime Array with 5 Points: ['2024-08-01' '2024-08-03' '2024-08-05' '2024-08-07' '2024-08-10']
建立時間陣列
在 NumPy 中建立時間陣列包括生成與時間相關的值的序列,例如小時、分鐘或秒,類似於建立日期陣列的方式。
在 NumPy 中,您可以使用datetime64 和timedelta64 資料型別建立時間陣列。雖然 "datetime64" 用於時間中的絕對點(例如特定日期和時間),但 "timedelta64" 表示持續時間(例如小時或分鐘)。透過組合這些型別,您可以建立表示特定時刻或間隔的時間值陣列。
示例
以下示例生成一個從午夜開始到中午結束的時間陣列,每個元素表示一個特定的小時 -
import numpy as np # Define the start and end times start_time = np.datetime64('2024-08-01T00:00') end_time = np.datetime64('2024-08-01T12:00') # Create an array of hourly intervals time_array = np.arange(start_time, end_time, np.timedelta64(1, 'h')) print("Time Array:", time_array)
執行上述程式碼後,我們將獲得以下輸出 -
Time Array: ['2024-08-01T00:00' '2024-08-01T01:00' '2024-08-01T02:00' '2024-08-01T03:00' '2024-08-01T04:00' '2024-08-01T05:00' '2024-08-01T06:00' '2024-08-01T07:00' '2024-08-01T08:00' '2024-08-01T09:00' '2024-08-01T10:00' '2024-08-01T11:00']
組合日期和時間
組合日期和時間包括建立包含日期和一天中特定時間的 "datetime64" 物件。
您可以透過在單個字串中指定日期和時間,或使用 NumPy 的向量化運算組合單獨的日期和時間陣列來建立 datetime64 陣列。
示例
在此示例中,我們建立一個數組,其中每個元素表示特定日期和時間 -
import numpy as np # Creating datetime arrays with date and time datetimes = np.array([np.datetime64('2024-08-01T08:00:00'), np.datetime64('2024-08-02T12:30:00'), np.datetime64('2024-08-03T16:45:00')]) print("Datetime Array with Date and Time:\n", datetimes)
產生的結果如下 -
Datetime Array with Date and Time: ['2024-08-01T08:00:00' '2024-08-02T12:30:00' '2024-08-03T16:45:00']