[英]how to add headers to a numpy.ndarray
我有一個numpy.ndarray,尺寸為23411 x3。我想在矩陣的頂部添加標題:“ summary”,“ age”和“ label”。 以該順序。
在:
matrix.shape
出:
(23411L, 3L)
在:
type(matrix)
出:
numpy.ndarray
我嘗試使用numpy.recarray,但沒有用。 有什么建議么??
您可以使用pandas實現此目的。
import pandas as pd
matrix = [...] # your ndarray
matrix = pd.DataFrame(data=matrix, columns=["summary", "age", "label"])
您可以擺弄dtype:
>>> a = np.arange(12).reshape(4, 3)
>>>
>>> dt = a.dtype
>>>
>>> ahead = a.view(np.dtype([('summary', dt), ('age', dt), ('label', dt)]))
>>>
>>> ahead
array([[(0, 1, 2)],
[(3, 4, 5)],
[(6, 7, 8)],
[(9, 10, 11)]],
dtype=[('summary', '<i8'), ('age', '<i8'), ('label', '<i8')])
>>> ahead['summary']
array([[0],
[3],
[6],
[9]])
但請注意,就我所知,這些復合dtype數組不是很有用:
>>> ahead @ ahead.T
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: invalid data type for einsum
僅舉一個例子。
使用成員(包括numpy數組和標題作為字符串)創建您自己的類。
我認為沒有辦法做到這一點。 嘗試matrix.dtype。 這應該給你類似dtype('int32')的東西。 您的標題將是字符串。
據我所知,您只能在numpy數組/矩陣中存儲一種數據類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.