Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2010 16:17:25

Spectral
От:
Зарегистрирован: 2010-07-13
Сообщения: 51
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос про numpy.array и list

Вот кусок, который рисует трехмерную графику:

import pylab
from mpl_toolkits.mplot3d import Axes3D
import numpy

def makeData ():
x = numpy.arange (-10, 10, 0.1)
y = numpy.arange (-10, 10, 0.1)
xgrid, ygrid = numpy.meshgrid(x, y)

zgrid = numpy.sin (xgrid) * numpy.sin (ygrid) / (xgrid * ygrid)
return xgrid, ygrid, zgrid

x, y, z = makeData()

fig = pylab.figure()
axes = Axes3D(fig)

axes.plot_surface(x, y, z)

pylab.show()
Видно, что для генерации данных использован метод array библиотеки numpy:
x = numpy.arange (-10, 10, 0.1)
y = numpy.arange (-10, 10, 0.1)
C одной стороны, это очень удобно при генерации простых входных данных на график.
С другой стороны, возникает следующий вопрос.
Имеется три списка значений x,y,z. Как можно трансформировать списки в объект numpy-list, чтобы можно было передать их в axes.plot_surface(x, y, z) и строить пользовательские x,y,z на трехмерном графике в таком случае?
Попытка подать сами списки на график вызывает ошибку
rows, cols = Z.shape
AttributeError: 'list' object has no attribute 'shape'



Отредактировано (Сен. 13, 2010 16:21:33)

Офлайн

#2 Сен. 13, 2010 20:38:32

asv13
От:
Зарегистрирован: 2007-01-22
Сообщения: 130
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос про numpy.array и list

Spectral
Имеется три списка значений x,y,z. Как можно трансформировать списки в объект numpy-list, чтобы можно было передать их в axes.plot_surface(x, y, z) и строить пользовательские x,y,z на трехмерном графике в таком случае?
в объект array нужно приводить -
x = numpy.array(x_list)



Офлайн

#3 Сен. 14, 2010 11:44:32

Spectral
От:
Зарегистрирован: 2010-07-13
Сообщения: 51
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос про numpy.array и list

Спасибо! То, что надо…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version