Comments 39
Вы напомнили мне про NumPy и про то, что я с ней не работал)
Из той же оперы еще SymPy неплох.
Соглашусь с тем, что неплох. Я уже описывал его в курсе на Викиверситете, как пример отличной библиотеки для символьных вычислений. Но то, что из одной оперы, то здесь композиторы совсем разные и по большей части для разных вещей. Хотя в SymPy тоже поддерживаются, например, операции с линейной алгеброй.
А еще массивы numpy без шаманства пиклятся и передаются в динамические библиотеки.
Да, например, с помощью
ndarray.dump(file)
.Спасибо! А то вроде как простых туториалов для numpy и нет, а в каком-нибудь проекте используешь списки — и все пинают в numpy — да и действительно, он значительно быстрее.
Странно, что такие статьи не особо ценят.
И вот, назрел вопрос: как обрабатываются вещи типа a[1, :, ...] с точки зрения синтаксиса языка?
И вот, назрел вопрос: как обрабатываются вещи типа a[1, :, ...] с точки зрения синтаксиса языка?
Точно также. То же самое, что
a[1, ...]
и что просто a[1]
. Легко проверяется в интерактивном режиме. Или в чем вопрос?Хорошая статья. Вот только NumPy это не расширение для языка Python, а модуль для CPython. Как мне его не хватает в PyPy :-(
Спасибо, хорошая статья, я для себя даже кое-что новое узнал :)) Ну и за ссылку, данкешон :)
хотелось бы не сухих комментариев к мануалу, а реальных примеров решения классических задач (3d графика, convex hull, voronoi, итп.)
Это прямой перевод пособия, размещенного на сайте. В нем рассматриваются общие вопросы работы с массивами, само название говорит, для чего оно нужно. Более специфическим вопросам будут посвящены другие топики.
scipy/numpy не умеют convex hull. см delaunay package, который всё равно не pure python.
что вы понимаете под '3d графика'?
что вы понимаете под '3d графика'?
delny package: bitbucket.org/flub/delny
Вру, умеют: scipy.spatial.qhull
я имел ввиду именно примеры решения задач с использованием numpy, чтобы, так сказать, наглядно продемонстрировать приемущества использования в этих задачах numpy перед pure python.
в 3d графике используются вектора, а также матричная арифметика (причом в каждой 3д или игровой библиотеке реализованы свои вектора и матрицы, с шахматами и поэтэссами)
в 3d графике используются вектора, а также матричная арифметика (причом в каждой 3д или игровой библиотеке реализованы свои вектора и матрицы, с шахматами и поэтэссами)
Я попробовал взять toy raytracer'ер[1] и заменить в нём их классы Vector и Point на numpy массивы получается обратная ситуация — код замедляется. Это, видимо, связано с тем, что проще перемножить/сложить 3 числа так, чем переходить для этого в C код Numpy. Я глубоко не копал в этом, точно сказать немогу.
При этом, если запустить код под pypy-c-jit, то pure python без Numpy выигрывает в несколько раз по сравнению с кодом с CPython + numpy.
Я прямо сейчас занимаюсь тем, что пишу 3d графику для Python. Правда, задача у меня несколько специфичная.
[1] www.lshift.net/blog/2008/10/29/toy-raytracer-in-python
При этом, если запустить код под pypy-c-jit, то pure python без Numpy выигрывает в несколько раз по сравнению с кодом с CPython + numpy.
Я прямо сейчас занимаюсь тем, что пишу 3d графику для Python. Правда, задача у меня несколько специфичная.
[1] www.lshift.net/blog/2008/10/29/toy-raytracer-in-python
ну или вообще — для чего нужен этот numpy, в каких задачах его применение оправдано, а в каких нет.
У меня вопрос. я как раз смотрел на эту либу:
Есть вариант такой
объект A, у него есть характеристики ( Цвет: Зеленый, размер: 10, вес: 100, противоводный: ДА )
объект B, у него есть характеристики ( Цвет: Красный, размер: 10, вес: 90, противоводный: НЕТ )
объект C, у него есть характеристики ( Цвет: Зеленый, размер: 10, вес: 100, противоводный: ДА )
объект D, у него есть характеристики ( размер: 10, вес: 100, противоводный: ДА, Скидка: ДА )
Нужно если например На входе фуннкции объект A, построить объекты в таком виде
объект C
объект B
объект D
т.е. объект С наиболее схож с объектом А и так далее.
Как я понимаю эту задачу я могу решить с этой либой ( п.с. размер: 10, вес: 100 — канечно это все будет идентификаторы, типа prp_id = 1( свойство размер), p2w_id= 2( значения свойства размер = 10),
prp_id = 2( свойство вес), p2w_id= 3( значения свойства размер = 100) )
) буду раз если Камрады помогут решить эту задачу.
Сейчас это все делаеться обходом цыкла, но хочеться красоты и прочего)
Ну и вторая задача выходит из этого
на входе: Цвет: Зеленый, размер: 10, вес: 100, на выходе все тот же список объектов, наиболее релевантные по входным параметрам.
Есть вариант такой
объект A, у него есть характеристики ( Цвет: Зеленый, размер: 10, вес: 100, противоводный: ДА )
объект B, у него есть характеристики ( Цвет: Красный, размер: 10, вес: 90, противоводный: НЕТ )
объект C, у него есть характеристики ( Цвет: Зеленый, размер: 10, вес: 100, противоводный: ДА )
объект D, у него есть характеристики ( размер: 10, вес: 100, противоводный: ДА, Скидка: ДА )
Нужно если например На входе фуннкции объект A, построить объекты в таком виде
объект C
объект B
объект D
т.е. объект С наиболее схож с объектом А и так далее.
Как я понимаю эту задачу я могу решить с этой либой ( п.с. размер: 10, вес: 100 — канечно это все будет идентификаторы, типа prp_id = 1( свойство размер), p2w_id= 2( значения свойства размер = 10),
prp_id = 2( свойство вес), p2w_id= 3( значения свойства размер = 100) )
) буду раз если Камрады помогут решить эту задачу.
Сейчас это все делаеться обходом цыкла, но хочеться красоты и прочего)
Ну и вторая задача выходит из этого
на входе: Цвет: Зеленый, размер: 10, вес: 100, на выходе все тот же список объектов, наиболее релевантные по входным параметрам.
Скажите пожалуйста, а можно ли выбирать конкретные столбцы в массиве?
Например, имея массив
я хочу выбрать первый и 4й столбцы, чтобы получить
Можно ли это сделать просто что-то типа array[:,0::4]?
Например, имея массив
array([[ 7., 5., 9., 3.],
[ 7., 2., 7., 8.],
[ 6., 8., 3., 2.]])
я хочу выбрать первый и 4й столбцы, чтобы получить
array([[ 7., 3.],
[ 7., 8.],
[ 6., 2.]])
Можно ли это сделать просто что-то типа array[:,0::4]?
Отличный мануал, спасибо!
Только видимо что-то отъехало в хабре — html-код в примерах какой-то полез.
Только видимо что-то отъехало в хабре — html-код в примерах какой-то полез.
Все бы хорошо, если бы не поехавшая верстка (
Sign up to leave a comment.
NumPy, пособие для новичков. Часть 1