gpt4 book ai didi

python - 从 numpy 结构化数组(数组中的元组列表)中删除列?

转载 作者:行者123 更新时间:2023-11-30 22:57:05 29 4
gpt4 key购买 nike

我使用一个外部库函数,它返回一个 numpy 结构化数组。

cities_array
>>> array([ (1, [-122.46818353792992, 48.74387985436505], u'05280', u'Bellingham', u'53', u'Washington', u'5305280', u'city', u'N', -99, 52179),
(2, [-109.67985528815007, 48.54381826401885], u'35050', u'Havre', u'30', u'Montana', u'3035050', u'city', u'N', 2494, 10201),
(3, [-122.63068540357023, 48.49221584868184], u'01990', u'Anacortes', u'53', u'Washington', u'5301990', u'city', u'N', -99, 11451),
...,
(3147, [-156.45657614262274, 20.870633142444376], u'22700', u'Kahului', u'15', u'Hawaii', u'1522700', u'census designated place', u'N', 7, 16889),
(3148, [-156.45038252004554, 20.76059218396], u'36500', u'Kihei', u'15', u'Hawaii', u'1536500', u'census designated place', u'N', -99, 11107),
(3149, [-155.08472452266503, 19.693112205773275], u'14650', u'Hilo', u'15', u'Hawaii', u'1514650', u'census designated place', u'N', 38, 37808)],
dtype=[('ID', '<i4'), ('Shape', '<f8', (2,)), ('CITY_FIPS', '<U5'), ('CITY_NAME', '<U40'), ('STATE_FIPS', '<U2'), ('STATE_NAME', '<U25'), ('STATE_CITY', '<U7'), ('TYPE', '<U25'), ('CAPITAL', '<U1'), ('ELEVATION', '<i4'), ('POP1990', '<i4')])

cities_array 的类型为 <type 'numpy.ndarray'>

我能够访问数组的各个列:

cities_array[['ID','CITY_NAME']]
>>> array([(1, u'Bellingham'), (2, u'Havre'), (3, u'Anacortes'), ...,
(3147, u'Kahului'), (3148, u'Kihei'), (3149, u'Hilo')],
dtype=[('ID', '<i4'), ('CITY_NAME', '<U40')])

现在我想删除第一列 IDhelpSO questions 说它应该是 numpy.delete

运行此命令时:numpy.delete(cities_array,cities_array['ID'],1) 我收到错误消息:

...in delete
N = arr.shape[axis]
IndexError: tuple index out of range

我做错了什么?我应该对city_array进行后处理以便能够使用该数组吗?

我使用的是 Python 2.7.10 和 numpy 1.11.0

最佳答案

我认为这应该有效:

def delete_colum(array, *args):

filtered = [x for x in array.dtype.names if x not in args]

return array[filtered]

数组示例:

a
Out[9]:
array([(1, [-122.46818353792992, 48.74387985436505])],
dtype=[('ID', '<i4'), ('Shape', '<f8', (2,))])

delete_colum(a,'ID')
Out[11]:
array([([-122.46818353792992, 48.74387985436505],)],
dtype=[('Shape', '<f8', (2,))])

关于python - 从 numpy 结构化数组(数组中的元组列表)中删除列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837435/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com