如何将标题添加到numpy.ndarray

问题描述 投票:0回答:4

我有一个numpy.ndarray,尺寸为23411 x 3.我想在矩阵的顶部添加标题:“summary”,“age”和“label”。以该顺序。

在:

matrix.shape

日期:

(23411L, 3L)

在:

type(matrix)

日期:

numpy.ndarray

我尝试使用numpy.recarray但它没有用。有什么建议??

python numpy
4个回答
3
投票

你可以用pandas实现这一目标。

import pandas as pd
matrix = [...] # your ndarray

matrix = pd.DataFrame(data=matrix, columns=["summary", "age", "label"])

3
投票

你可以摆弄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

举一个例子。


1
投票

创建自己的类,其成员包括numpy数组和标题字符串。


0
投票

我认为没有办法做到这一点。试试matrix.dtype。这应该给你类似dtype('int32')的东西。你的标题是字符串。

据我所知,你只能在numpy数组/矩阵中存储一种数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.