格式化3x3数组

时间:2018-02-03 04:51:08

标签: python arrays numpy multidimensional-array

我有3个numpy数组,我想成为3x3

的形状

我试过

x = numpy.arange(0, 19, 1)
y = numpy.arange(1960, 2017, 1)
z = numpy.arange(0, 1027, 1)

3D_array = numpy.array([x, y, z])

我希望能将这个数组索引为:

3D_array[0][0][0]

返回x中0索引的位置,y中的0索引和z中的0索引, 但形状实际上是(3,)所以当我尝试索引如上时,我得到错误IndexError:标量变量无效索引。并且我可以看到第一个切片显示所有xs,第二个索引是x数组中的位置,最后一个是超出范围。

我怎样才能按照自己的意愿塑造这个ndarray?

1 个答案:

答案 0 :(得分:1)

这不是您问题的直接答案,而是基于您的评论的建议。您可能会发现使用pandas进行此类电子表格式索引更为舒适。然后,您可以为索引命名并使用更自然的索引。

例如,以您的用例为基础:

>>> import pandas as pd
>>> df = pd.DataFrame.from_records([['Canada', 1985, 3.2],
                                    ['Iceland', 1985, 1.5],
                                    ['Canada', 1995, 3.8],
                                    ['Iceland', 1995, 2.5]],
                                   columns=['Country', 'Year', 'Data'],
                                   index=['Country', 'Year'])
>>> df.loc['Canada', 1985]
Data    3.2
Name: (Canada, 1985), dtype: float64