如何构造嵌套的numpy记录数组?

时间:2017-07-14 15:14:25

标签: python arrays numpy

numpy manual提及numpy.save

的用例
  

Annie Analyst一直在使用大型嵌套记录数组来表示   她的统计数据。

是否可以使用没有dtype = object的嵌套记录数组?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:3)

是的,就像这样:

engine_dt = np.dtype([('volume', float), ('cylinders', int)])
car_dt = np.dtype([('color', int, 3), ('engine', engine_dt)])  # nest the dtypes

cars = np.rec.array([
    ([255, 0, 0], (1.5, 8)),
    ([255, 0, 255], (5, 24)),
], dtype=car_dt)

print(cars.engine.cylinders)
# array([ 8, 24])

np.dtype函数在这里并不是绝对必要的,但它通常是一个好主意,并且每次让array调用它时会提高速度。

请注意,rec.array仅在此处使用.engine表示法。如果您使用普通np.array,那么您将使用cars['engine']['cylinders']

答案 1 :(得分:-1)

您可以像构造嵌套列表一样构造嵌套数组:

nested_list = [['a',1],['b',2],['c',3]]

import numpy as np
nested_array = np.array(nested_list)