我想制作一个浮点数组,它将一个浮点数作为索引(例如,如果Pandas系列具有浮点类型索引)。所以让我解释一下。我想要类似于:浮动索引器到numpy数组
i = np.array([(5.,1), (6.,2)], dtype=[('foo', 'f4'),('bar', 'i4')])
如果第一个类型('foo'类型)可以用作索引器。所以,我可以做
print(i[:5.5])
,它会打印1
,或(5., 1)
。
我很确定这可能与Numpy,我只是不知道如何。
我想制作一个浮点数组,它将一个浮点数作为索引(例如,如果Pandas系列具有浮点类型索引)。所以让我解释一下。我想要类似于:浮动索引器到numpy数组
i = np.array([(5.,1), (6.,2)], dtype=[('foo', 'f4'),('bar', 'i4')])
如果第一个类型('foo'类型)可以用作索引器。所以,我可以做
print(i[:5.5])
,它会打印1
,或(5., 1)
。
我很确定这可能与Numpy,我只是不知道如何。
您可能需要逻辑索引:
i[i['foo'] < 5.5]
# array([(5.0, 1)],
# dtype=[('foo', '<f4'), ('bar', '<i4')])
i[:5.5]
不具有明显的意义。
i[:5]
表示数组(或列表)的前5个元素。 i[:6]
第6个。它应该怎么处理5.5
? floor(5.5)
?天花板?返回5个半元素? 5个元素加上5和6之间的线性插值?
其实:5.5
工程(1.11),但有一个警告:
In [346]: np.arange(10)[:5]
Out[346]: array([0, 1, 2, 3, 4])
In [347]: np.arange(10)[:5.5]
/usr/local/bin/ipython3:1: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
#!/usr/bin/python3
Out[347]: array([0, 1, 2, 3, 4])
有了您的结构数组,记录索引的工作方式相同:
In [349]: i = np.array([(5.,1), (6.,2)], dtype=[('foo', 'f4'),('bar', 'i4')])
In [350]: i[:5]
这是确定切片超越结束 - 它只是返回一切。
Out[350]:
array([(5.0, 1), (6.0, 2)],
dtype=[('foo', '<f4'), ('bar', '<i4')])
In [351]: i[:5.5]
/usr/local/bin/ipython3:1: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
#!/usr/bin/python3
Out[351]:
array([(5.0, 1), (6.0, 2)],
dtype=[('foo', '<f4'), ('bar', '<i4')])
================
索引中numpy
只是计数的方式。没有索引或标签列表或数组。这是pandas
已添加的内容,但它不是numpy
的一部分。在您的i
数组中,字段确实有名称,例如i['foo']
。它看起来像列标签,但将结构化字段与2d列混淆是危险的。
你想浮动*切片*看起来。 –