NumPy實現(xiàn)結(jié)構(gòu)化數(shù)組的示例代碼
在 NumPy 中,結(jié)構(gòu)化數(shù)組允許我們創(chuàng)建具有復(fù)雜數(shù)據(jù)類型的數(shù)組,類似于表格或數(shù)據(jù)庫中的行。這對于處理異質(zhì)數(shù)據(jù)集非常有用。在本篇博客中,我們將深入介紹 NumPy 中的結(jié)構(gòu)化數(shù)組,并通過實例演示如何創(chuàng)建、訪問和操作結(jié)構(gòu)化數(shù)組。
1. 創(chuàng)建結(jié)構(gòu)化數(shù)組
結(jié)構(gòu)化數(shù)組可以通過指定每個字段的名稱和數(shù)據(jù)類型來創(chuàng)建。
import numpy as np
# 定義數(shù)據(jù)類型
dtype = np.dtype([('name', 'S10'), ('age', int), ('height', float)])
# 創(chuàng)建結(jié)構(gòu)化數(shù)組
data = np.array([('Alice', 25, 5.6), ('Bob', 30, 6.0)], dtype=dtype)
print(data)
2. 訪問結(jié)構(gòu)化數(shù)組的字段
可以通過字段名稱訪問結(jié)構(gòu)化數(shù)組的各個字段。
# 訪問結(jié)構(gòu)化數(shù)組的字段 print(data['name']) # 輸出:['Alice' 'Bob'] print(data['age']) # 輸出:[25 30] print(data['height']) # 輸出:[5.6 6. ]
3. 修改結(jié)構(gòu)化數(shù)組的值
通過索引和字段名稱,可以修改結(jié)構(gòu)化數(shù)組的各個字段的值。
# 修改結(jié)構(gòu)化數(shù)組的值 data['age'][0] = 26 data['height'][1] = 6.2 print(data)
4. 多維結(jié)構(gòu)化數(shù)組
結(jié)構(gòu)化數(shù)組可以是多維的,每個維度可以有不同的數(shù)據(jù)類型。
# 多維結(jié)構(gòu)化數(shù)組
dtype_multi = np.dtype([('matrix', [('row', int), ('column', int)]), ('value', float)])
data_multi = np.array([((1, 2), 3.5), ((3, 4), 1.2)], dtype=dtype_multi)
print(data_multi)
5. 使用嵌套字段
結(jié)構(gòu)化數(shù)組支持嵌套字段,可以方便地處理嵌套結(jié)構(gòu)。
# 使用嵌套字段
dtype_nested = np.dtype([('info', [('name', 'S10'), ('age', int)]), ('height', float)])
data_nested = np.array([(('Alice', 25), 5.6), (('Bob', 30), 6.0)], dtype=dtype_nested)
print(data_nested)
6. 結(jié)構(gòu)化數(shù)組的排序
可以使用 np.sort 函數(shù)對結(jié)構(gòu)化數(shù)組進行排序。
# 結(jié)構(gòu)化數(shù)組的排序 sorted_data = np.sort(data, order='age') print(sorted_data)
7. 結(jié)構(gòu)化數(shù)組的條件篩選
可以使用條件來篩選結(jié)構(gòu)化數(shù)組中的數(shù)據(jù)。
# 結(jié)構(gòu)化數(shù)組的條件篩選 filtered_data = data[data['age'] > 26] print(filtered_data)
8. 結(jié)構(gòu)化數(shù)組與 Pandas DataFrame 的轉(zhuǎn)換
結(jié)構(gòu)化數(shù)組可以方便地與 Pandas DataFrame 進行轉(zhuǎn)換。
import pandas as pd # 結(jié)構(gòu)化數(shù)組轉(zhuǎn)為 DataFrame df = pd.DataFrame(data) print(df)
9. 總結(jié)
結(jié)構(gòu)化數(shù)組是 NumPy 中用于處理異質(zhì)數(shù)據(jù)的重要工具,通過定義復(fù)雜的數(shù)據(jù)類型,我們可以創(chuàng)建具有不同字段的數(shù)組,類似于表格或數(shù)據(jù)庫中的行。結(jié)構(gòu)化數(shù)組提供了訪問、修改、排序和條件篩選數(shù)據(jù)的靈活性,同時也方便與 Pandas DataFrame 進行交互。希望本篇博客能夠幫助你更好地理解和運用 NumPy 中的結(jié)構(gòu)化數(shù)組功能。
到此這篇關(guān)于NumPy實現(xiàn)結(jié)構(gòu)化數(shù)組的示例代碼的文章就介紹到這了,更多相關(guān)NumPy 結(jié)構(gòu)化數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python解析網(wǎng)頁上的json數(shù)據(jù)并保存到EXCEL
這篇文章主要為大家詳細介紹了如何使用python解析網(wǎng)頁上的json數(shù)據(jù)并保存到EXCEL,文中的示例代碼講解詳細,感興趣的可以了解下2024-11-11
vue.js實現(xiàn)輸入框輸入值內(nèi)容實時響應(yīng)變化示例
這篇文章主要介紹了vue.js實現(xiàn)輸入框輸入值內(nèi)容實時響應(yīng)變化,結(jié)合實例形式分析了vue.js使用v-model屬性進行數(shù)據(jù)綁定的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
Flask如何結(jié)合Jinja2模板引擎返回渲染后HTML
在 Flask 中結(jié)合 Jinja2 模板引擎返回渲染后的 HTML 是核心功能之一,本文主要介紹了詳細實現(xiàn)方法和最佳實踐,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-06-06

