2016-09-08 7 views
-3

Я работаю с numpy. Я столкнулся с этой строкой кода.Что делают эти строки кода?

a = (1.,80.,5.) 

Что это значит? В какой-то другой линии, я нашел

aList = np.arange(a[0], a[1]+a[2], a[2]) 

Примечание:np это пространство имен выделено из numpy.

+1

есть Распознать https://docs.python.org/3/tutorial/datastructures.html это поможет понять основы списков, словари, кортежи, и устанавливает – jhole89

ответ

2

a является кортеж поплавков. Кортеж - это своего рода структура, которая похожа на список , но является неизменяемым (т. Е. Вы не можете изменять какие-либо его компоненты после его создания). Но, как список, он может быть проиндексирован.

Теоретически некоторые кортежи имеют особые имена, например, кортеж из 2 называется парой, кортеж из 3 называется триплетом и т. Д. (Люди не обязательно называют их такими, но это помогает немного больше понять, что такое кортеж). Потому что это неизменное, концептуально это больше похоже на уникальный объект, а не как на коллекцию; по этой причине он также может быть действительным образом использован как ключ к словарю (в отличие от списков, которые не могут).

Чтобы создать кортеж, вы создаете разделенные запятыми последовательности объектов в круглых скобках, то есть () (в отличие от скобок, то есть [], что вы должны создать список).

Что касается поплавков, то поплавок 3.0 также можно написать 3. для краткости.

Функция numpy.arange затем создает диапазон, вызывая его, используя компоненты кортежа в качестве аргументов. В вашем конкретном случае он будет создавать диапазон чисел от 1 до 80 + 5 с шагом 5.

Очень классное использование кортежей состоит в том, что они могут быть расширены до последовательности аргументов функции. например если у вас был кортеж a = (1.,10.,2.), и вы хотели позвонить numpy.arange(a[0], a[1], a[2]), вы могли бы просто сделать numpy.arange(*a).

3

Для первого сегмента кода вы создаете кортеж с 3 номерами 1, 80 и 5 в этом.

a=(1.,80.,5.) 
1.0, 80.0, 5.0) 

Во втором сегменте кода вы организовать список с равномерно расположенными значения от 1 до 81 (из-за добавлении 1 и 2) с intevals из 5.

np.arange(a[0], a[1]+a[2], a[2]) 
array([ 1., 6., 11., 16., 21., 26., 31., 36., 41., 46., 51., 
     56., 61., 66., 71., 76., 81.]) 

из не numpy help

numpy.arange ([старт,] стоп, [шаг] DTYPE = None)

Возвращайте равномерно разнесенные значения в течение заданного интервала.

Значения генерируются в пределах полуоткрытого интервала [старт, стоп) (другими словами, интервал, включающий запуск, но исключающий останов). Для целых аргументов функция эквивалентна встроенной функции диапазона Python, но возвращает ndarray, а не список.

EDIT Как a.smiet указал код создает кортеж, а не список. Существуют различия между ними, как указано here

+0

на самом деле первый сегмент создает кортеж , а не список. А вторая строка создает равномерно разнесенные значения от 1 до 81, а не 80 ... –

+0

Отличная точка! Будет редактировать для уточнения. – zhqiat

1

Первая строка - это всего лишь кортеж.

Вторая строка использует np.arange метод, который возвращает venly разнесенных значений в пределах заданного интервала:

np.arange(start, stop, step)

Параметров вы используете кортеж, a. Где a[0] = 1 и a[1] = 80 так далее ...

1
a = (1.,80.,5.) 

Создает кортеж из 3 поплавков (1,0, 80,0 и 5,0).

aList = np.arange(a[0], a[1]+a[2], a[2]) 

создал этот список:

[ 1. 6. 11. 16. 21. 26. 31. 36. 41. 46. 51. 56. 61. 66. 71. 76. 81.] 

который, согласно http://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html означает то будет 1.0 есть начало, 85,0 (что составляет 80 + 5) является конечным и 5.0 представляет собой стадию (параметры функция) для создания разнесенных значений.

1

Для первого, это кортеж из 3-х элементов:

>>> a = (1.,80.,5.) 
>>> a 
(1.0, 80.0, 5.0) 

Для второго, он генерирует список (старт: 1.0, конец: 80.0 + 5.0, шаг: 5,0):

>>> a_list = numpy.arange(a[0], a[1]+a[2], a[2]) 
>>> a_list 
array([ 1., 6., 11., 16., 21., 26., 31., 36., 41., 46., 51., 
     56., 61., 66., 71., 76., 81.]) 
Смежные вопросы