使用 NumPy 從文字形式的記錄列表建立 RecArray 並使用名稱獲取列
要從文字形式的記錄列表建立 RecArray,請在 Python NumPy 中使用 **numpy.core.records.fromrecords()** 方法。名稱是使用“**names**”引數設定的。欄位名稱,可以以 'col1, col2, col3' 形式的逗號分隔字串指定,也可以以 ['col1', 'col2', 'col3'] 形式的字串列表或元組指定。可以使用空列表,在這種情況下使用預設欄位名稱('f0'、'f1'、…)。
第一個引數是資料,同一欄位中的資料可能是異構的——它們將被提升到最高資料型別。dtype 是所有陣列的有效 dtype。格式、名稱、標題、對齊、位元組序引數、f dtype 為 None,這些引數將傳遞給 numpy.format_parser 以構造 dtype。如果 formats 和 dtype 都為 None,則這將自動檢測格式。為了更快地處理,請使用元組列表而不是列表列表。
步驟
首先,匯入所需的庫:
import numpy as np
使用 numpy.array() 方法建立一個新陣列:
arr1 = np.array([[7, 14, 21], [30, 37, 45]]) arr2 = np.array([[11.3, 18.7, 24], [87.5, 65, 23.8]]) arr3 = np.array([['12', 'bbb', 'john'], ['5.6', '29', 'k']])
顯示陣列:
print("Array1...
",arr1)
print("Array2...
",arr2)
print("Array3...
",arr3)獲取陣列的型別:
print("
Array1 type...
", arr1.dtype)
print("
Array2 type...
", arr2.dtype)
print("
Array3 type...
", arr3.dtype)獲取陣列的維度:
print("
Array1 Dimensions...
", arr1.ndim)
print("
Array2 Dimensions...
", arr2.ndim)
print("
Array3 Dimensions...
", arr3.ndim)要從文字形式的記錄列表建立 RecArray,請在 Python NumPy 中使用 numpy.core.records.fromrecords() 方法。名稱是使用“names”引數設定的:
rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3')
print("
Record Array...
",rec)基於名稱獲取列:
print("
Fetching the column1...
",rec.col1)
print("
Fetching the column2...
",rec.col2)
print("
Fetching the column3...
",rec.col3)示例
import numpy as np
# Create a new array using the numpy.array() method
arr1 = np.array([[7, 14, 21], [30, 37, 45]])
arr2 = np.array([[11.3, 18.7, 24], [87.5, 65, 23.8]])
arr3 = np.array([['12', 'bbb', 'john'], ['5.6', '29', 'k']])
# Display the arrays
print("Array1...
",arr1)
print("Array2...
",arr2)
print("Array3...
",arr3)
# Get the type of the arrays
print("
Array1 type...
", arr1.dtype)
print("
Array2 type...
", arr2.dtype)
print("
Array3 type...
", arr3.dtype)
# Get the dimensions of the Arrays
print("
Array1 Dimensions...
", arr1.ndim)
print("
Array2 Dimensions...
", arr2.ndim)
print("
Array3 Dimensions...
", arr3.ndim)
# To create a recarray from a list of records in text form, use the numpy.core.records.fromrecords() method in Python Numpy
# The names is set using the "names" parameter
# The field names, either specified as a comma-separated string in the form 'col1, col2, col3', or as a list or tuple of strings in the form ['col1', 'col2', 'col3'].
# An empty list can be used, in that case default field names (‘f0’, ‘f1’, …) are used.
rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3')
print("
Record Array...
",rec)
# Fetching the columns based on names
print("
Fetching the column1...
",rec.col1)
print("
Fetching the column2...
",rec.col2)
print("
Fetching the column3...
",rec.col3)輸出
Array1...
[[ 7 14 21]
[30 37 45]]
Array2...
[[11.3 18.7 24. ]
[87.5 65. 23.8]]
Array3...
[['12' 'bbb' 'john']
['5.6' '29' 'k']]
Array1 type...
int64
Array2 type...
float64
Array3 type...
<U4
Array1 Dimensions...
2
Array2 Dimensions...
2
Array3 Dimensions...
2
Record Array...
[[('7', '14', '21') ('30', '37', '45')]
[('11.3', '18.7', '24.0') ('87.5', '65.0', '23.8')]
[('12', 'bbb', 'john') ('5.6', '29', 'k')]]
Fhing the column1...
[['7' '30']
['11.3' '87.5']
['12' '5.6']]
Fhing the column2...
[['14' '37']
['18.7' '65.0']
['bbb' '29']]
Fhing the column3...
[['21' '45']
['24.0' '23.8']
['john' 'k']]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP