При наличии некоторых данных в массиве numpy, каков наиболее эффективный способ создания аналогичного массива numpy, содержащего значения индекса?
Я рассмотрел несколько возможностей, подробности которых приведены ниже. Мне интересно, есть ли более простой метод.
При наличии некоторых данных в массиве numpy, каков наиболее эффективный способ создания аналогичного массива numpy, содержащего значения индекса? Я рассмотрел несколько возможностей, подробности которых приведены ниже. Мне интересно, есть ли более простой метод. [list] [*][code]numpy.linspace[/code] [code]numpy.linspace(0, len(data_array), len(data_array), endpoint=False) [/code] Это можно немного изменить, чтобы возвращать целочисленные значения, а не значения с плавающей запятой, если это соответствует проблемной области. [code]numpy.linspace(0, len(data_array), len(data_array), endpoint=False, dtype=Int) [/code]
[*][code]enumerate[/code] [code]enumerate[/code] может использоваться в различных формах. Я предпочитаю форму с использованием карты. [code]numpy.array([index for (index, _) in enumerate(data_array)]) [/code] [code]numpy.array(list(map(lambda pair: pair[0], enumerate(data_array))) [/code]
[*][code]numpy.indices[/code] Этот вариант выглядит некрасиво из-за дополнительной запятой, необходимой для создания кортежа. [code]numpy.indices((len(price_data),))[0] [/code]
[/list] Каждый из вышеперечисленных методов возвращает правильные значения. Однако каждый из них несколько громоздок для такой простой задачи.