簡體   English   中英

如何將標題添加到numpy.ndarray

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM