You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
| 2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
| 2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
| 2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
| 2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
| 2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
| 2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
| 2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
| 2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
| 2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
| 2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
| 2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
| 2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
| 2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Chao Y. <cha...@gm...> - 2012-09-10 13:33:23
|
Hi Ben, I think I installed this version by following the instructions on matplotlib website. But when I try to use git log, I get: chaoyue@chaoyue-Aspire-4750:/usr/local/lib/python2.7/dist-packages/matplotlib$ pwd /usr/local/lib/python2.7/dist-packages/matplotlib chaoyue@chaoyue-Aspire-4750:/usr/local/lib/python2.7/dist-packages/matplotlib$ git log fatal: Not a git repository (or any of the parent directories): .git I tried to have a look at __init__.py, it has: from __future__ import print_function __version__ = '1.2.x' __version__numpy__ = '1.4' # minimum required numpy version So it's the correct directory I am going. could you give some further instructions? Chao On Mon, Sep 10, 2012 at 3:05 PM, Benjamin Root <ben...@ou...> wrote: > > > On Mon, Sep 10, 2012 at 2:56 AM, Chao YUE <cha...@gm...> wrote: > >> Hi Ben, >> >> I tried the "numpoints" in legend function for scatter plot, in dev >> version and GTKAgg backend it works. >> >> In [3]: mat.__version__ >> Out[3]: '1.2.x' >> >> In [4]: mat.get_backend() >> Out[4]: 'GTKAgg' >> >> Chao >> >> > Strange, when I tested it last night, I was using a build of mpl from > master of a couple weeks ago, and I saw three markers in the legend. Now, > I am trying it again with the latest master: > 1478a1be70b3077b71350cecaccb774f76a76656, and I now see *zero* markers. > Something is seriously broken. > > Can you tell me what commit (and the date for that commit) shows up at top > when you run "git log" in the mpl source directory? > > Ben Root > > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ |
|
From: Benjamin R. <ben...@ou...> - 2012-09-10 13:05:36
|
On Mon, Sep 10, 2012 at 2:56 AM, Chao YUE <cha...@gm...> wrote: > Hi Ben, > > I tried the "numpoints" in legend function for scatter plot, in dev > version and GTKAgg backend it works. > > In [3]: mat.__version__ > Out[3]: '1.2.x' > > In [4]: mat.get_backend() > Out[4]: 'GTKAgg' > > Chao > > Strange, when I tested it last night, I was using a build of mpl from master of a couple weeks ago, and I saw three markers in the legend. Now, I am trying it again with the latest master: 1478a1be70b3077b71350cecaccb774f76a76656, and I now see *zero* markers. Something is seriously broken. Can you tell me what commit (and the date for that commit) shows up at top when you run "git log" in the mpl source directory? Ben Root |
|
From: Chao Y. <cha...@gm...> - 2012-09-10 06:59:16
|
Dear Ben, I tried again with dev version and GTKAgg backend it works. In [3]: mat.__version__ Out[3]: '1.2.x' In [4]: mat.get_backend() Out[4]: 'GTKAgg' Chao On Sun, Sep 9, 2012 at 9:32 PM, Benjamin Root <ben...@ou...> wrote: > > > On Tue, Apr 10, 2012 at 12:22 PM, wiswit <cha...@gm...> wrote: > >> Dear all, I use matplotlib 1.1.0. import matplotlib.pyplot as plt >> plt.plot(np.arange(10),'ro',mec='none') when I use plt.show(), there is >> only blank frame with axis not no points. but plt.plot(np.arange(10),'ro') >> will give good plot with read filled circles and black edges. >> plt.scatter(np.arange(10),np.arange(10),c='r',marker='o',edgecolor='none') >> is working fine. but I really think plt.plot is a very good and easy >> function if you don't make complex scatter points. and the circles look >> much nicer than that produced by plt.scatter (thought I don't know why as >> they use the same symble....) does anyone else have found the same ? thanks >> to all, Chao >> > > > This works for me with GTKAgg backend. If this is still a problem for > you, which backend are you using? > > Ben Root > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ |
|
From: Chao Y. <cha...@gm...> - 2012-09-10 06:57:05
|
Hi Ben, I tried the "numpoints" in legend function for scatter plot, in dev version and GTKAgg backend it works. In [3]: mat.__version__ Out[3]: '1.2.x' In [4]: mat.get_backend() Out[4]: 'GTKAgg' Chao On Sun, Sep 9, 2012 at 9:28 PM, Benjamin Root <ben...@ou...> wrote: > > > On Tue, Apr 10, 2012 at 12:43 PM, wiswit <cha...@gm...> wrote: > >> >> Dear all, >> >> I found that the numpoints in legend function for scatter plot is not >> working? >> >> import matplotlib as mat >> import matplotlib.pyplot as plt >> In [59]: mat.__version__ >> Out[59]: '1.1.0' >> >> #ordinary plot working >> fig=plt.figure() >> ax=fig.add_subplot(111) >> ax.plot(np.arange(10),'ro',label='tst') >> ax.legend(numpoints=1) >> plt.show() >> >> #but not scatter plot >> fig=plt.figure() >> ax=fig.add_subplot(111) >> ax.scatter(np.arange(10),np.arange(10),marker='o',label='tst') >> ax.legend(numpoints=1) >> plt.show() >> >> cheers, >> >> chao >> >> > Confirmed... this is still broken. > > Ben Root > -- *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ |
|
From: Joe K. <jof...@gm...> - 2012-09-10 00:26:51
|
Announcement - mplstereonet v0.2 ========================= mplstereonet provides lower-hemisphere equal-area and equal-angle stereonets for matplotlib. Download -------------- Available for download at: http://pypi.python.org/pypi/mplstereonet/0.2 See the github page for more information and development versions: https://github.com/joferkington/mplstereonet About --------- Stereonets are a type of plot commonly used in the geosciences for visualizing and analyzing orientation data. Orientations of linear and planar features are plotted as the intersection of the feature with a hemisphere. (Therefore, linear features plot as points and planar features plot as lines.) mplstereonet provides plotting of planes (measured as strikes and dips), poles to planes, and lineations (measured as rakes along a plane or as plunges and bearings). Additionally, mplstereonet provides orientation density contouring using a variety of standard methods (e.g. "Kamb" contouring, etc). Getting Started ---------------------- The easiest way to get started is to have a look at the examples: https://github.com/joferkington/mplstereonet/tree/master/examples Additionally, the readme has an overview and various examples: https://github.com/joferkington/mplstereonet/blob/master/README.rst Changes ------------- New features in version 0.2 include: - Density contouring of orientation data using a variety of methods - Equal-angle as well as equal-area stereonets - A variety of parsing utilities - Geometric analysis utilities (e.g. plane intersections) Thank you all very much! -Joe Kington |
|
From: Benjamin R. <ben...@ou...> - 2012-09-09 19:32:54
|
On Tue, Apr 10, 2012 at 12:22 PM, wiswit <cha...@gm...> wrote: > Dear all, I use matplotlib 1.1.0. import matplotlib.pyplot as plt > plt.plot(np.arange(10),'ro',mec='none') when I use plt.show(), there is > only blank frame with axis not no points. but plt.plot(np.arange(10),'ro') > will give good plot with read filled circles and black edges. > plt.scatter(np.arange(10),np.arange(10),c='r',marker='o',edgecolor='none') > is working fine. but I really think plt.plot is a very good and easy > function if you don't make complex scatter points. and the circles look > much nicer than that produced by plt.scatter (thought I don't know why as > they use the same symble....) does anyone else have found the same ? thanks > to all, Chao > This works for me with GTKAgg backend. If this is still a problem for you, which backend are you using? Ben Root |
|
From: Benjamin R. <ben...@ou...> - 2012-09-09 19:29:13
|
On Tue, Apr 10, 2012 at 12:43 PM, wiswit <cha...@gm...> wrote: > > Dear all, > > I found that the numpoints in legend function for scatter plot is not > working? > > import matplotlib as mat > import matplotlib.pyplot as plt > In [59]: mat.__version__ > Out[59]: '1.1.0' > > #ordinary plot working > fig=plt.figure() > ax=fig.add_subplot(111) > ax.plot(np.arange(10),'ro',label='tst') > ax.legend(numpoints=1) > plt.show() > > #but not scatter plot > fig=plt.figure() > ax=fig.add_subplot(111) > ax.scatter(np.arange(10),np.arange(10),marker='o',label='tst') > ax.legend(numpoints=1) > plt.show() > > cheers, > > chao > > Confirmed... this is still broken. Ben Root |
|
From: Benjamin R. <ben...@ou...> - 2012-09-09 19:15:13
|
On Tue, May 22, 2012 at 9:18 AM, Stevenson, Samuel < Sam...@co...> wrote: > Hi Ben**** > > ** ** > > I am using 1.0.0. My colleague has 1.1.0 installed on his machine and is > able to reproduce the same problem.**** > > ** ** > > Thanks**** > > > Sam > Going through my old unresolved emails, I came across this one. I suspect that whatever has caused this problem in v1.1.0 is still present in v1.2.0 that we will be putting out an RC for. If you can make a small script that can demonstrate the memory leak, maybe we can track it down and nail this sucker before the final release? Cheers! Ben Root |
|
From: Eric F. <ef...@ha...> - 2012-09-09 19:15:01
|
On 2012/09/09 8:50 AM, Benjamin Root wrote: > > > On Wed, Aug 15, 2012 at 5:40 AM, Jesper Larsen <jes...@gm... > <mailto:jes...@gm...>> wrote: > > Hi Matplotlib users > > I have an application where performance is critical and matplotlib is > the performance bottleneck. I am making a lot of figures using the > same basic setup of the figure. And from my profiling I can see that > this basic setup accounts for most of the CPU time. Let us say that I > make a given figure including some axes. My questions are: > > 1. Can I make a copy of this figure including axes (copy.deepcopy does > not work on Figure objects) and use the copy for plotting on? > > 2. And how? Should I use the frozen method somehow? > > I did do something similar some years back. But at the time I removed > the stuff I had drawn on the figure. I would like to avoid this for > two reasons: 1) Thread safety, I must be able to draw figures in > several simultaneous threads and 2) I really had to go into some > low-level details in matplotlib (not a show-stopper, but for > maintenance reasons I would like to keep the code as clear as > possible). > > Best regards, > Jesper > > > Jesper, > > An experimental feature that will be available in the upcoming v1.2.0 > release will be pickling support. It is marked as experimental as there > are plenty of untested edge cases, but it should be a huge step in the > right direction for the feature that you and many others have asked > for. We certainly will welcome any and all feedback on what does and > does not pickle well. > > Cheers! > Ben Root Some benchmarking would be useful as well. Pickling/unpickling can be very slow. Eric |
|
From: Benjamin R. <ben...@ou...> - 2012-09-09 18:51:16
|
On Wed, Aug 15, 2012 at 5:40 AM, Jesper Larsen <jes...@gm...>wrote: > Hi Matplotlib users > > I have an application where performance is critical and matplotlib is > the performance bottleneck. I am making a lot of figures using the > same basic setup of the figure. And from my profiling I can see that > this basic setup accounts for most of the CPU time. Let us say that I > make a given figure including some axes. My questions are: > > 1. Can I make a copy of this figure including axes (copy.deepcopy does > not work on Figure objects) and use the copy for plotting on? > > 2. And how? Should I use the frozen method somehow? > > I did do something similar some years back. But at the time I removed > the stuff I had drawn on the figure. I would like to avoid this for > two reasons: 1) Thread safety, I must be able to draw figures in > several simultaneous threads and 2) I really had to go into some > low-level details in matplotlib (not a show-stopper, but for > maintenance reasons I would like to keep the code as clear as > possible). > > Best regards, > Jesper > > Jesper, An experimental feature that will be available in the upcoming v1.2.0 release will be pickling support. It is marked as experimental as there are plenty of untested edge cases, but it should be a huge step in the right direction for the feature that you and many others have asked for. We certainly will welcome any and all feedback on what does and does not pickle well. Cheers! Ben Root |
|
From: Eric F. <ef...@ha...> - 2012-09-09 07:27:05
|
On 2012/09/08 5:34 PM, Jody Klymak wrote:
>
>>
>> This is one of the big differences between python and matlab: in
>> matlab, if an m-file has changed within a session, the change is
>> immediately effective. The python "import" statement is very
>> different.
>
> Gotchya, thanks.
>
> So, while I'm being a bother:
>
> in Matlab, I often organize data in structures as:
>
> adcp.time [1xN] adcp.z [Mx1] adcp.u [MxN]
>
> where time is the x-axis, z the z-axis and u an array of values at
> each depth and time (an example chosen after Eric's heart).
>
> What is the recommended way to represent this in python? I see the
> info about numpy structured arrays. Is that it? It also seems that
> Mx1 arrays are hard in python. It also seems you need to preallocate
> the whole array, which isn't very flexible compared to how you can do
> it in Matlab. Am I missing something?
Jody,
A structured array is probably overkill; it would require storing
everything as MxN, which may not be necessary.
Most of the time, if you have something that is 1-D, you can just keep
it in a 1-D array. If you need adcp.time to behave as if it were MxN,
you can just use it as-is, because numpy broadcasting will add
dimensions to the left as needed. If you need adcp.z to behave as if it
were MxN, you can simply index it like this: adcp.z[:, np.newaxis].
Now, for the structure syntax, you can use a class, e.g.
class Data:
pass
adcp = Data()
adcp.time = time
adcp.z = z
adcp.u = u
Now your adcp instance is just like the matlab structure.
This works, but you might want to use a more flexible container. One
variation on the Bunch is here:
http://currents.soest.hawaii.edu/hgstage/pycurrents/file/8bf05a53b326/system/misc.py.
It is fancier than you need for now, but illustrates the sort of thing
you can do with python, and it will work fine even when you don't need
all its features. You could initialize it like this:
adcp = Bunch(time=time, z=z, u=u)
assuming, as before, that you already have individual numpy arrays
called time, z, and u. You can still tack on additional attributes, like
adcp.something_else = whatever
The Bunch allows access using the structure notation, and also using
dictionary syntax, so adcp.u is the same as adcp['u']. The dictionary
syntax is particularly useful when automating operations, because you
can easily iterate over a list of dictionary entries.
Regarding the need to pre-allocate: yes, matlab is slicker in this
regard, and every now and then there is discussion about implementing
equivalent behavior in numpy, or in an add-on module.
In many cases you can simply accumulate values in a list, and then at
the end use an array constructor to make an ndarray from the list.
You can also use the numpy concatenate function, or its derivatives, but
this usually makes sense only for gluing together small numbers of arrays.
Eric
>
> Thanks, Jody
>
|
|
From: Jody K. <jk...@uv...> - 2012-09-09 03:34:26
|
>
> This is one of the big differences between python and matlab: in matlab,
> if an m-file has changed within a session, the change is immediately
> effective. The python "import" statement is very different.
Gotchya, thanks.
So, while I'm being a bother:
in Matlab, I often organize data in structures as:
adcp.time [1xN]
adcp.z [Mx1]
adcp.u [MxN]
where time is the x-axis, z the z-axis and u an array of values at each depth and time (an example chosen after Eric's heart).
What is the recommended way to represent this in python? I see the info about numpy structured arrays. Is that it? It also seems that Mx1 arrays are hard in python. It also seems you need to preallocate the whole array, which isn't very flexible compared to how you can do it in Matlab. Am I missing something?
Thanks, Jody
>
>>
>> Sorry for the chatter, and thanks for the pointers..
>> Cheers, Jody
>>
>> On Sep 8, 2012, at 6:18 AM, Jody Klymak <jk...@uv...
>> <mailto:jk...@uv...>> wrote:
>>
>>> Hi all,
>>>
>>> Thats what I thought too:
>>>
>>> I have: jmkfigure.py:
>>>
>>> ===============
>>> from pylab import *
>>>
>>> def jmkfigure():
>>> rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>>> rc('font',size=9);
>>> ===========
>>>
>>> and test.py:
>>>
>>> =========
>>> from pylab import *
>>>
>>> from jmkfigure import *
>>>
>>> jmkfigure()
>>> figure(1)
>>> plot([1,2,3]);
>>>
>>> show()
>>> ==============
>>>
>>>>>> run test.py
>>>
>>> yields a traceback ending w/:
>>>
>>> ===========
>>> Users/jklymak/teaching/Phy411/project/jmkfigure.py in jmkfigure()
>>> 1 from pylab import *
>>> ----> 2
>>> 3 def jmkfigure():
>>> 4 rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>>> 5 rc('font',size=9);
>>>
>>> NameError: global name 'rc' is not defined
>>> ========
>>>
>>> Same error if I just import "rc" from matplot lib....
>>>
>>> Is it some strange set up problem? If I put the same def in test.py
>>> it works fine...
>>>
>>> Thanks, Jody
>>>
>>> On Sep 7, 2012, at 22:52 PM, Paul Tremblay <pau...@gm...
>>> <mailto:pau...@gm...>> wrote:
>>>
>>>> in your jmkfile.py you should have
>>>>
>>>> from pylab import *
>>>>
>>>> Paul
>>>>
>>>>
>>>> On 9/8/12 12:45 AM, Jody Klymak wrote:
>>>>> Hi All,
>>>>>
>>>>> Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here.
>>>>>
>>>>> Inhttp://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says:
>>>>> """
>>>>> If you like to work interactively, and need to create different sets
>>>>> of defaults for figures (eg one set of defaults for publication, one
>>>>> set for interactive exploration), you may want to define some
>>>>> functions in a custom module that set the defaults, eg
>>>>>
>>>>> def set_pub():
>>>>> rc('font', weight='bold') # bold fonts are easier to see
>>>>>
>>>>> Then as you are working interactively, you just need to do
>>>>>
>>>>>>>> set_pub()
>>>>> """
>>>>>
>>>>> Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling
>>>>>
>>>>> from jmkfigure import *
>>>>>
>>>>> set_pub()
>>>>>
>>>>> yields the error: "NameError: global name 'rc' is not defined"
>>>>>
>>>>> I tried importing matplotlib and rc into jmkfigure.py, but to no avail.
>>>>>
>>>>> I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module.
>>>>>
>>>>> Thanks for any help,
>>>>>
>>>>> Cheers, Jody
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Live Security Virtual Conference
>>>> Exclusive live event will cover all the ways today's security and
>>>> threat landscape has changed and how IT managers can respond.
>>>> Discussions
>>>> will include endpoint security, mobile security and the latest in
>>>> malware
>>>> threats.
>>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>>>> Matplotlib-users mailing list
>>>> Mat...@li...
>>>> <mailto:Mat...@li...>
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>> --
>>> Jody Klymak
>>> http://web.uvic.ca/~jklymak/
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Live Security Virtual Conference
>>> Exclusive live event will cover all the ways today's security and
>>> threat landscape has changed and how IT managers can respond. Discussions
>>> will include endpoint security, mobile security and the latest in malware
>>> threats.
>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>>> Matplotlib-users mailing list
>>> Mat...@li...
>>> <mailto:Mat...@li...>
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>> --
>> Jody Klymak
>> http://web.uvic.ca/~jklymak/
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>>
>>
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Jody Klymak
http://web.uvic.ca/~jklymak/
|
|
From: Eric F. <ef...@ha...> - 2012-09-08 16:53:31
|
On 2012/09/08 3:50 AM, Jody Klymak wrote:
> Ack, OK, to answer my own question...
>
> Somehow ipython was caching the definition of jmkfigure, so changing the
> module in the jmkfigure.py file did not actually change the version
> ipython was using. Running a new version of ipython, it worked fine.
Jody,
This is one of the big differences between python and matlab: in matlab,
if an m-file has changed within a session, the change is immediately
effective. The python "import" statement is very different. If a module
has been imported, then a subsequent "import" of it does not re-read the
file, even if it has changed. There is a "reload" builtin function that
will re-read a file, but it is rarely used. It reloads only the
specified module, not modules that use it. Ipython has a recursive
dreload (for deep reload) function, but I don't use that, either; I just
do what you did, start a new instance of ipython.
In ipython, the %run magic is useful for developing and modifying a
single module or script at at time, making changes and testing without
restarting ipython.
Eric
>
> Sorry for the chatter, and thanks for the pointers..
> Cheers, Jody
>
> On Sep 8, 2012, at 6:18 AM, Jody Klymak <jk...@uv...
> <mailto:jk...@uv...>> wrote:
>
>> Hi all,
>>
>> Thats what I thought too:
>>
>> I have: jmkfigure.py:
>>
>> ===============
>> from pylab import *
>>
>> def jmkfigure():
>> rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>> rc('font',size=9);
>> ===========
>>
>> and test.py:
>>
>> =========
>> from pylab import *
>>
>> from jmkfigure import *
>>
>> jmkfigure()
>> figure(1)
>> plot([1,2,3]);
>>
>> show()
>> ==============
>>
>> >>> run test.py
>>
>> yields a traceback ending w/:
>>
>> ===========
>> Users/jklymak/teaching/Phy411/project/jmkfigure.py in jmkfigure()
>> 1 from pylab import *
>> ----> 2
>> 3 def jmkfigure():
>> 4 rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
>> 5 rc('font',size=9);
>>
>> NameError: global name 'rc' is not defined
>> ========
>>
>> Same error if I just import "rc" from matplot lib....
>>
>> Is it some strange set up problem? If I put the same def in test.py
>> it works fine...
>>
>> Thanks, Jody
>>
>> On Sep 7, 2012, at 22:52 PM, Paul Tremblay <pau...@gm...
>> <mailto:pau...@gm...>> wrote:
>>
>>> in your jmkfile.py you should have
>>>
>>> from pylab import *
>>>
>>> Paul
>>>
>>>
>>> On 9/8/12 12:45 AM, Jody Klymak wrote:
>>>> Hi All,
>>>>
>>>> Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here.
>>>>
>>>> Inhttp://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says:
>>>> """
>>>> If you like to work interactively, and need to create different sets
>>>> of defaults for figures (eg one set of defaults for publication, one
>>>> set for interactive exploration), you may want to define some
>>>> functions in a custom module that set the defaults, eg
>>>>
>>>> def set_pub():
>>>> rc('font', weight='bold') # bold fonts are easier to see
>>>>
>>>> Then as you are working interactively, you just need to do
>>>>
>>>>>>> set_pub()
>>>> """
>>>>
>>>> Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling
>>>>
>>>> from jmkfigure import *
>>>>
>>>> set_pub()
>>>>
>>>> yields the error: "NameError: global name 'rc' is not defined"
>>>>
>>>> I tried importing matplotlib and rc into jmkfigure.py, but to no avail.
>>>>
>>>> I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module.
>>>>
>>>> Thanks for any help,
>>>>
>>>> Cheers, Jody
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Live Security Virtual Conference
>>> Exclusive live event will cover all the ways today's security and
>>> threat landscape has changed and how IT managers can respond.
>>> Discussions
>>> will include endpoint security, mobile security and the latest in
>>> malware
>>> threats.
>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>>> Matplotlib-users mailing list
>>> Mat...@li...
>>> <mailto:Mat...@li...>
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>> --
>> Jody Klymak
>> http://web.uvic.ca/~jklymak/
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats.
>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> <mailto:Mat...@li...>
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
> --
> Jody Klymak
> http://web.uvic.ca/~jklymak/
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: Jody K. <jk...@uv...> - 2012-09-08 13:50:33
|
Ack, OK, to answer my own question...
Somehow ipython was caching the definition of jmkfigure, so changing the module in the jmkfigure.py file did not actually change the version ipython was using. Running a new version of ipython, it worked fine.
Sorry for the chatter, and thanks for the pointers..
Cheers, Jody
On Sep 8, 2012, at 6:18 AM, Jody Klymak <jk...@uv...> wrote:
> Hi all,
>
> Thats what I thought too:
>
> I have: jmkfigure.py:
>
> ===============
> from pylab import *
>
> def jmkfigure():
> rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
> rc('font',size=9);
> ===========
>
> and test.py:
>
> =========
> from pylab import *
>
> from jmkfigure import *
>
> jmkfigure()
> figure(1)
> plot([1,2,3]);
>
> show()
> ==============
>
> >>> run test.py
>
> yields a traceback ending w/:
>
> ===========
> Users/jklymak/teaching/Phy411/project/jmkfigure.py in jmkfigure()
> 1 from pylab import *
> ----> 2
> 3 def jmkfigure():
> 4 rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
> 5 rc('font',size=9);
>
> NameError: global name 'rc' is not defined
> ========
>
> Same error if I just import "rc" from matplot lib....
>
> Is it some strange set up problem? If I put the same def in test.py it works fine...
>
> Thanks, Jody
>
> On Sep 7, 2012, at 22:52 PM, Paul Tremblay <pau...@gm...> wrote:
>
>> in your jmkfile.py you should have
>>
>> from pylab import *
>>
>> Paul
>>
>>
>> On 9/8/12 12:45 AM, Jody Klymak wrote:
>>> Hi All,
>>>
>>> Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here.
>>>
>>> In http://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says:
>>> """
>>> If you like to work interactively, and need to create different sets
>>> of defaults for figures (eg one set of defaults for publication, one
>>> set for interactive exploration), you may want to define some
>>> functions in a custom module that set the defaults, eg
>>>
>>> def set_pub():
>>> rc('font', weight='bold') # bold fonts are easier to see
>>>
>>> Then as you are working interactively, you just need to do
>>>
>>>>>> set_pub()
>>> """
>>>
>>> Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling
>>>
>>> from jmkfigure import *
>>>
>>> set_pub()
>>>
>>> yields the error: "NameError: global name 'rc' is not defined"
>>>
>>> I tried importing matplotlib and rc into jmkfigure.py, but to no avail.
>>>
>>> I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module.
>>>
>>> Thanks for any help,
>>>
>>> Cheers, Jody
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
> --
> Jody Klymak
> http://web.uvic.ca/~jklymak/
>
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Jody Klymak
http://web.uvic.ca/~jklymak/
|
|
From: Jody K. <jk...@uv...> - 2012-09-08 13:18:29
|
Hi all,
Thats what I thought too:
I have: jmkfigure.py:
===============
from pylab import *
def jmkfigure():
rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
rc('font',size=9);
===========
and test.py:
=========
from pylab import *
from jmkfigure import *
jmkfigure()
figure(1)
plot([1,2,3]);
show()
==============
>>> run test.py
yields a traceback ending w/:
===========
Users/jklymak/teaching/Phy411/project/jmkfigure.py in jmkfigure()
1 from pylab import *
----> 2
3 def jmkfigure():
4 rc('figure',figsize=(3+3/8,8.5/2),dpi=96)
5 rc('font',size=9);
NameError: global name 'rc' is not defined
========
Same error if I just import "rc" from matplot lib....
Is it some strange set up problem? If I put the same def in test.py it works fine...
Thanks, Jody
On Sep 7, 2012, at 22:52 PM, Paul Tremblay <pau...@gm...> wrote:
> in your jmkfile.py you should have
>
> from pylab import *
>
> Paul
>
>
> On 9/8/12 12:45 AM, Jody Klymak wrote:
>> Hi All,
>>
>> Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here.
>>
>> In http://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says:
>> """
>> If you like to work interactively, and need to create different sets
>> of defaults for figures (eg one set of defaults for publication, one
>> set for interactive exploration), you may want to define some
>> functions in a custom module that set the defaults, eg
>>
>> def set_pub():
>> rc('font', weight='bold') # bold fonts are easier to see
>>
>> Then as you are working interactively, you just need to do
>>
>>>>> set_pub()
>> """
>>
>> Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling
>>
>> from jmkfigure import *
>>
>> set_pub()
>>
>> yields the error: "NameError: global name 'rc' is not defined"
>>
>> I tried importing matplotlib and rc into jmkfigure.py, but to no avail.
>>
>> I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module.
>>
>> Thanks for any help,
>>
>> Cheers, Jody
>>
>>
>>
>>
>>
>>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Jody Klymak
http://web.uvic.ca/~jklymak/
|
|
From: Eric F. <ef...@ha...> - 2012-09-08 07:12:05
|
On 2012/09/07 7:52 PM, Paul Tremblay wrote: > in your jmkfile.py you should have > > from pylab import * Or to be more pythonic, import only what you actually need in a given module, e.g., from matplotlib import rc Eric > > Paul > > > > On 9/8/12 12:45 AM, Jody Klymak wrote: >> Hi All, >> >> Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here. >> >> Inhttp://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says: >> """ >> If you like to work interactively, and need to create different sets >> of defaults for figures (eg one set of defaults for publication, one >> set for interactive exploration), you may want to define some >> functions in a custom module that set the defaults, eg >> >> def set_pub(): >> rc('font', weight='bold') # bold fonts are easier to see >> >> Then as you are working interactively, you just need to do >> >>>>> set_pub() >> """ >> >> Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling >> >> from jmkfigure import * >> >> set_pub() >> >> yields the error: "NameError: global name 'rc' is not defined" >> >> I tried importing matplotlib and rc into jmkfigure.py, but to no avail. >> >> I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module. >> >> Thanks for any help, >> >> Cheers, Jody >> >> >> >> >> >> > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
|
From: Paul T. <pau...@gm...> - 2012-09-08 05:52:28
|
in your jmkfile.py you should have from pylab import * Paul On 9/8/12 12:45 AM, Jody Klymak wrote: > Hi All, > > Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here. > > In http://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says: > """ > If you like to work interactively, and need to create different sets > of defaults for figures (eg one set of defaults for publication, one > set for interactive exploration), you may want to define some > functions in a custom module that set the defaults, eg > > def set_pub(): > rc('font', weight='bold') # bold fonts are easier to see > > Then as you are working interactively, you just need to do > >>>> set_pub() > """ > > Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling > > from jmkfigure import * > > set_pub() > > yields the error: "NameError: global name 'rc' is not defined" > > I tried importing matplotlib and rc into jmkfigure.py, but to no avail. > > I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module. > > Thanks for any help, > > Cheers, Jody > > > > > > |
|
From: Jody K. <jk...@uv...> - 2012-09-08 04:45:54
|
Hi All, Sorry to ask a dumb python newbie question, but the problem arose while reading the matplotlib documentation, and an hour or so on the internet didnt' help, so I felt it was fair-ish game to post here. In http://matplotlib.sourceforge.net/examples/pylab_examples/customize_rc.html it says: """ If you like to work interactively, and need to create different sets of defaults for figures (eg one set of defaults for publication, one set for interactive exploration), you may want to define some functions in a custom module that set the defaults, eg def set_pub(): rc('font', weight='bold') # bold fonts are easier to see Then as you are working interactively, you just need to do >>> set_pub() """ Which I thought was great, because I'd like to have some presets for different journals. However, saving the def into a file (jmkfigure.py) and calling from jmkfigure import * set_pub() yields the error: "NameError: global name 'rc' is not defined" I tried importing matplotlib and rc into jmkfigure.py, but to no avail. I appreciate this is a scoping issue with python, but I can't figure out how to set rc from within an external module. Thanks for any help, Cheers, Jody |
|
From: Mark B. <mar...@gm...> - 2012-09-07 23:38:34
|
Thanks Ben, that solved my issue. I guess I got thrown off because the plot stayed open, as you described. It's hard to troubleshoot when you don't get any errors. In the future I will attach all of my objects. -Mark On Fri, Sep 7, 2012 at 12:03 PM, Benjamin Root <ben...@ou...> wrote: > I think I see your problem... see below: > > > class start_lasso(): > def __init__(self): > data = [Datum(*xy) for xy in rand(100, 2)] > > fig = figure() > ax = fig.add_subplot(111, xlim=(0,1), ylim=(0,1), > autoscale_on=False) > lman = LassoManager(ax, data) > show() > > You aren't saving any of the objects created in the "start_lasso" class to > your start_lasso object. Luckily, with the way pyplot works, the figure > object your create gets implicitly saved to the "pyplot state manager" (a > sort of smart global location for the figure objects), and the axes object > gets implicitly attached to the figure object. Therefore, when the python > execution goes out of this scope, the figure object and the axes do not get > garbage-collected. However, the lasso widget that gets created and all the > callbacks that were attached are all done with weak references to the figure > and axes. So when you leave this scope, the LassoManager no longer exists > and the callback fails to execute (as designed). > > So, make sure that at least lman (and possibly fig and ax) gets saved to the > start_lasso object to solve that part of the problem. Next, you don't save > the start_lasso object your create anywhere, so even if you saved lman to > start_lasso, the start_lasso object gets garbage-collected anyway as a > temporary. > > I hope this is clear. Let me know if you still have more issues. > > Cheers! > Ben Root > |
|
From: Benjamin R. <ben...@ou...> - 2012-09-07 19:04:19
|
I think I see your problem... see below:
class start_lasso():
def __init__(self):
data = [Datum(*xy) for xy in rand(100, 2)]
fig = figure()
ax = fig.add_subplot(111, xlim=(0,1), ylim=(0,1),
autoscale_on=False)
lman = LassoManager(ax, data)
show()
You aren't saving any of the objects created in the "start_lasso" class to
your start_lasso object. Luckily, with the way pyplot works, the figure
object your create gets implicitly saved to the "pyplot state manager" (a
sort of smart global location for the figure objects), and the axes object
gets implicitly attached to the figure object. Therefore, when the python
execution goes out of this scope, the figure object and the axes do not get
garbage-collected. However, the lasso widget that gets created and all the
callbacks that were attached are all done with weak references to the
figure and axes. So when you leave this scope, the LassoManager no longer
exists and the callback fails to execute (as designed).
So, make sure that at least lman (and possibly fig and ax) gets saved to
the start_lasso object to solve that part of the problem. Next, you don't
save the start_lasso object your create anywhere, so even if you saved lman
to start_lasso, the start_lasso object gets garbage-collected anyway as a
temporary.
I hope this is clear. Let me know if you still have more issues.
Cheers!
Ben Root
|
|
From: Ethan G. <eth...@gm...> - 2012-09-07 18:16:14
|
On Sep 7, 2012, at 11:04 AM, Eric Firing wrote: > On 2012/09/07 4:00 AM, Benjamin Root wrote: >> >> >> On Fri, Sep 7, 2012 at 9:49 AM, Shahar Shani-Kadmiel >> <ka...@po... <mailto:ka...@po...>> wrote: >> >> On Sep 7, 2012, at 4:25 PM, Benjamin Root wrote: >> >>> >>> >>> On Fri, Sep 7, 2012 at 8:44 AM, Shahar Shani-Kadmiel >>> <ka...@po... <mailto:ka...@po...>> wrote: >>> > <snip> > Normalization has to handle all sorts of inputs--masked or not, all > sorts of numbers, scalar or array--and it is much easier to do this > efficiently if all these possibilities are reduced to a very few at the > start. Specifically, it needs to supply a copy of the input (so that > normalization doesn't change the original) in a floating point masked > array, using float32 if possible for space efficiency. It needs to keep > track of whether the input was a scalar, so that normalization can > return a scalar when given a scalar input. > > Eric Another option as I understand it is to pass in a 1D (greyscale) or 3d (color) array (where the 3rd dimension is RGB and optionally A) of type uint8(?). This array does not need to get normalized, it will be displayed as raw pixel values. I don't remember if you also have to specifically tell it not to normalize the data. But the easier answer for your case would probably be imshow(data[::10,::10]) which will take every 10th element in x and y thus reducing the size by a factor of 100 (depending on the size of your data you could use ::2 or ::50, etc) Ethan |
|
From: Eric F. <ef...@ha...> - 2012-09-07 17:04:53
|
On 2012/09/07 4:00 AM, Benjamin Root wrote:
>
>
> On Fri, Sep 7, 2012 at 9:49 AM, Shahar Shani-Kadmiel
> <ka...@po... <mailto:ka...@po...>> wrote:
>
> On Sep 7, 2012, at 4:25 PM, Benjamin Root wrote:
>
>>
>>
>> On Fri, Sep 7, 2012 at 8:44 AM, Shahar Shani-Kadmiel
>> <ka...@po... <mailto:ka...@po...>> wrote:
>>
>> 1. an ipython session is invoked with qtconsole --pylab
>> 2. I load a large NetCDF grid (Grid file format: nf (# 18) GMT
>> netCDF format (float) (COARDS-compliant) [DEFAULT]), approx.
>> 1.15 GB
>> 3. I then try to plot with imshow the data
>>
>> added below are the lines leading up to the error and the
>> error itself.
>>
>>
>> This is running on OS X 10.7.4 with a recently installed EPD 7.3.
>>
>>
>> {code}
>> from scipy.io <http://scipy.io/> import netcdf_file as netcdf
>> data =
>> netcdf('srtm_43_44_05_06_07_08.grd','r').variables['z'][::-1]
>>
>> fig, ax = subplots()
>>
>> data.shape
>> Out[5]: (24004, 12002)
>>
>> im = ax.imshow(data,
>> aspect=((data.shape[1])/float(data.shape[0])),
>> interpolation='none')
>> ---------------------------------------------------------------------------
>> MemoryError Traceback (most
>> recent call last)
>> <ipython-input-6-f92e4c4c63b5> in <module>()
>> ----> 1 im = ax.imshow(data,
>> aspect=((data.shape[1])/float(data.shape[0])),
>> interpolation='none')
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/axes.py
>> in imshow(self, X, cmap, norm, aspect, interpolation, alpha,
>> vmin, vmax, origin, extent, shape, filternorm, filterrad,
>> imlim, resample, url, **kwargs)
>> 6743 im.set_clim(vmin, vmax)
>> 6744 else:
>> -> 6745 im.autoscale_None()
>> 6746 im.set_url(url)
>> 6747
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/cm.py
>> in autoscale_None(self)
>> 281 if self._A is None:
>> 282 raise TypeError('You must first set_array
>> for mappable')
>> --> 283 self.norm.autoscale_None(self._A)
>> 284 self.changed()
>> 285
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py
>> in autoscale_None(self, A)
>> 889 ' autoscale only None-valued vmin or vmax'
>> 890 if self.vmin is None:
>> --> 891 self.vmin = ma.min(A)
>> 892 if self.vmax is None:
>> 893 self.vmax = ma.max(A)
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in min(obj, axis, out, fill_value)
>> 5873 def min(obj, axis=None, out=None, fill_value=None):
>> 5874 try:
>> -> 5875 return obj.min(axis=axis,
>> fill_value=fill_value, out=out)
>> 5876 except (AttributeError, TypeError):
>> 5877 # If obj doesn't have a max method,
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in min(self, axis, out, fill_value)
>> 5054 # No explicit output
>> 5055 if out is None:
>> -> 5056 result =
>> self.filled(fill_value).min(axis=axis, out=out).view(type(self))
>> 5057 if result.ndim:
>> 5058 # Set the mask
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in filled(self, fill_value)
>> 3388 return self._data
>> 3389 else:
>> -> 3390 result = self._data.copy()
>> 3391 try:
>> 3392 np.putmask(result, m, fill_value)
>>
>> MemoryError:
>> {/code}
>>
>>
>> This is more a NumPy issue than anything else. We need to know
>> the min and the max of the array in order to automatically scale
>> the colormap for display. Therefore, we query the array object
>> for its min/max. Because we support masked arrays, the array is
>> first cast as a masked array, and then these queries are done.
>>
>> It appears that in numpy's masked array module, it calculates the
>> array's min by making a copy of itself first. I would have
>> figured that it would have done its task differently. In the
>> meantime, I suspect you can work around this problem by explicitly
>> setting the vmin/vmax keyword arguments to imshow if you know
>> them. Therefore, there should be no need to determine the array's
>> min/max in this inefficient manner.
>>
>> Ben Root
>>
>
> Hi Ben,
> I tried adding vmin & vmax the the imshow call but I still get a
> MemoryError.
> The grid file is 1.15 GB and I have ~4.5 out of 8 GB of memory
> available when I launch ipython, 3.5 when I execute imshow and 2
> when I execute plt.draw().
mpl simply is not designed for image-type operations on huge arrays,
vastly larger than what can be displayed. It is up to the user to
down-sample or otherwise reduce the size of the array fed to imshow.
>
>
> Well, it looks like setting vmin/vmax helped, because your traceback
Did a new traceback get posted in a message that was not sent to the
list? I found only the original traceback.
> shows that the code made significant progress. The issue here is that
> the process_value() method doesn't make a lot of sense. I am not sure
> what is the rationale behind its logic. Hopefully, someone else can
> chime in with an explanation of what is going on.
Normalization has to handle all sorts of inputs--masked or not, all
sorts of numbers, scalar or array--and it is much easier to do this
efficiently if all these possibilities are reduced to a very few at the
start. Specifically, it needs to supply a copy of the input (so that
normalization doesn't change the original) in a floating point masked
array, using float32 if possible for space efficiency. It needs to keep
track of whether the input was a scalar, so that normalization can
return a scalar when given a scalar input.
Eric
>
> In the meantime, are you using a 32 or 64-bit machine?
>
> Ben Root
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|
|
From: Shahar Shani-K. <ka...@po...> - 2012-09-07 14:41:43
|
On Sep 7, 2012, at 5:00 PM, Benjamin Root <ben...@ou...> wrote:
>
>
> On Fri, Sep 7, 2012 at 9:49 AM, Shahar Shani-Kadmiel <ka...@po...> wrote:
> On Sep 7, 2012, at 4:25 PM, Benjamin Root wrote:
>
>>
>>
>> On Fri, Sep 7, 2012 at 8:44 AM, Shahar Shani-Kadmiel <ka...@po...> wrote:
>> 1. an ipython session is invoked with qtconsole --pylab
>> 2. I load a large NetCDF grid (Grid file format: nf (# 18) GMT netCDF format (float) (COARDS-compliant) [DEFAULT]), approx. 1.15 GB
>> 3. I then try to plot with imshow the data
>>
>> added below are the lines leading up to the error and the error itself.
>>
>>
>> This is running on OS X 10.7.4 with a recently installed EPD 7.3.
>>
>>
>> {code}
>> from scipy.io import netcdf_file as netcdf
>> data = netcdf('srtm_43_44_05_06_07_08.grd','r').variables['z'][::-1]
>>
>> fig, ax = subplots()
>>
>> data.shape
>> Out[5]: (24004, 12002)
>>
>> im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])), interpolation='none')
>> ---------------------------------------------------------------------------
>> MemoryError Traceback (most recent call last)
>> <ipython-input-6-f92e4c4c63b5> in <module>()
>> ----> 1 im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])), interpolation='none')
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs)
>> 6743 im.set_clim(vmin, vmax)
>> 6744 else:
>> -> 6745 im.autoscale_None()
>> 6746 im.set_url(url)
>> 6747
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/cm.py in autoscale_None(self)
>> 281 if self._A is None:
>> 282 raise TypeError('You must first set_array for mappable')
>> --> 283 self.norm.autoscale_None(self._A)
>> 284 self.changed()
>> 285
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py in autoscale_None(self, A)
>> 889 ' autoscale only None-valued vmin or vmax'
>> 890 if self.vmin is None:
>> --> 891 self.vmin = ma.min(A)
>> 892 if self.vmax is None:
>> 893 self.vmax = ma.max(A)
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in min(obj, axis, out, fill_value)
>> 5873 def min(obj, axis=None, out=None, fill_value=None):
>> 5874 try:
>> -> 5875 return obj.min(axis=axis, fill_value=fill_value, out=out)
>> 5876 except (AttributeError, TypeError):
>> 5877 # If obj doesn't have a max method,
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in min(self, axis, out, fill_value)
>> 5054 # No explicit output
>> 5055 if out is None:
>> -> 5056 result = self.filled(fill_value).min(axis=axis, out=out).view(type(self))
>> 5057 if result.ndim:
>> 5058 # Set the mask
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in filled(self, fill_value)
>> 3388 return self._data
>> 3389 else:
>> -> 3390 result = self._data.copy()
>> 3391 try:
>> 3392 np.putmask(result, m, fill_value)
>>
>> MemoryError:
>> {/code}
>>
>> This is more a NumPy issue than anything else. We need to know the min and the max of the array in order to automatically scale the colormap for display. Therefore, we query the array object for its min/max. Because we support masked arrays, the array is first cast as a masked array, and then these queries are done.
>>
>> It appears that in numpy's masked array module, it calculates the array's min by making a copy of itself first. I would have figured that it would have done its task differently. In the meantime, I suspect you can work around this problem by explicitly setting the vmin/vmax keyword arguments to imshow if you know them. Therefore, there should be no need to determine the array's min/max in this inefficient manner.
>>
>> Ben Root
>>
>
> Hi Ben,
> I tried adding vmin & vmax the the imshow call but I still get a MemoryError.
> The grid file is 1.15 GB and I have ~4.5 out of 8 GB of memory available when I launch ipython, 3.5 when I execute imshow and 2 when I execute plt.draw().
>
> Well, it looks like setting vmin/vmax helped, because your traceback shows that the code made significant progress. The issue here is that the process_value() method doesn't make a lot of sense. I am not sure what is the rationale behind its logic. Hopefully, someone else can chime in with an explanation of what is going on.
>
> In the meantime, are you using a 32 or 64-bit machine?
>
> Ben Root
>
I am on a 64 bit machine but 32 bit distro of Enthought. |
|
From: Benjamin R. <ben...@ou...> - 2012-09-07 14:01:23
|
On Fri, Sep 7, 2012 at 9:49 AM, Shahar Shani-Kadmiel <ka...@po...
> wrote:
> On Sep 7, 2012, at 4:25 PM, Benjamin Root wrote:
>
>
>
> On Fri, Sep 7, 2012 at 8:44 AM, Shahar Shani-Kadmiel <
> ka...@po...> wrote:
>
>> 1. an ipython session is invoked with qtconsole --pylab
>> 2. I load a large NetCDF grid (Grid file format: nf (# 18) GMT netCDF
>> format (float) (COARDS-compliant) [DEFAULT]), approx. 1.15 GB
>> 3. I then try to plot with imshow the data
>>
>> added below are the lines leading up to the error and the error itself.
>>
>>
>> This is running on OS X 10.7.4 with a recently installed EPD 7.3.
>>
>>
>> {code}
>> from scipy.io import netcdf_file as netcdf
>> data = netcdf('srtm_43_44_05_06_07_08.grd','r').variables['z'][::-1]
>>
>> fig, ax = subplots()
>>
>> data.shape
>> Out[5]: (24004, 12002)
>>
>> im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])),
>> interpolation='none')
>>
>> ---------------------------------------------------------------------------
>> MemoryError Traceback (most recent call
>> last)
>> <ipython-input-6-f92e4c4c63b5> in <module>()
>> ----> 1 im = ax.imshow(data,
>> aspect=((data.shape[1])/float(data.shape[0])), interpolation='none')
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/axes.py
>> in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax,
>> origin, extent, shape, filternorm, filterrad, imlim, resample, url,
>> **kwargs)
>> 6743 im.set_clim(vmin, vmax)
>> 6744 else:
>> -> 6745 im.autoscale_None()
>> 6746 im.set_url(url)
>> 6747
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/cm.py
>> in autoscale_None(self)
>> 281 if self._A is None:
>> 282 raise TypeError('You must first set_array for
>> mappable')
>> --> 283 self.norm.autoscale_None(self._A)
>> 284 self.changed()
>> 285
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py
>> in autoscale_None(self, A)
>> 889 ' autoscale only None-valued vmin or vmax'
>> 890 if self.vmin is None:
>> --> 891 self.vmin = ma.min(A)
>> 892 if self.vmax is None:
>> 893 self.vmax = ma.max(A)
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in min(obj, axis, out, fill_value)
>> 5873 def min(obj, axis=None, out=None, fill_value=None):
>> 5874 try:
>> -> 5875 return obj.min(axis=axis, fill_value=fill_value, out=out)
>> 5876 except (AttributeError, TypeError):
>> 5877 # If obj doesn't have a max method,
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in min(self, axis, out, fill_value)
>> 5054 # No explicit output
>> 5055 if out is None:
>> -> 5056 result = self.filled(fill_value).min(axis=axis,
>> out=out).view(type(self))
>> 5057 if result.ndim:
>> 5058 # Set the mask
>>
>> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc
>> in filled(self, fill_value)
>> 3388 return self._data
>> 3389 else:
>> -> 3390 result = self._data.copy()
>> 3391 try:
>> 3392 np.putmask(result, m, fill_value)
>>
>> MemoryError:
>> {/code}
>>
>
> This is more a NumPy issue than anything else. We need to know the min
> and the max of the array in order to automatically scale the colormap for
> display. Therefore, we query the array object for its min/max. Because we
> support masked arrays, the array is first cast as a masked array, and then
> these queries are done.
>
> It appears that in numpy's masked array module, it calculates the array's
> min by making a copy of itself first. I would have figured that it would
> have done its task differently. In the meantime, I suspect you can work
> around this problem by explicitly setting the vmin/vmax keyword arguments
> to imshow if you know them. Therefore, there should be no need to
> determine the array's min/max in this inefficient manner.
>
> Ben Root
>
>
> Hi Ben,
> I tried adding vmin & vmax the the imshow call but I still get a
> MemoryError.
> The grid file is 1.15 GB and I have ~4.5 out of 8 GB of memory available
> when I launch ipython, 3.5 when I execute imshow and 2 when I execute
> plt.draw().
>
Well, it looks like setting vmin/vmax helped, because your traceback shows
that the code made significant progress. The issue here is that the
process_value() method doesn't make a lot of sense. I am not sure what is
the rationale behind its logic. Hopefully, someone else can chime in with
an explanation of what is going on.
In the meantime, are you using a 32 or 64-bit machine?
Ben Root
|
|
From: Shahar Shani-K. <ka...@po...> - 2012-09-07 13:49:33
|
On Sep 7, 2012, at 4:25 PM, Benjamin Root wrote:
>
>
> On Fri, Sep 7, 2012 at 8:44 AM, Shahar Shani-Kadmiel <ka...@po...> wrote:
> 1. an ipython session is invoked with qtconsole --pylab
> 2. I load a large NetCDF grid (Grid file format: nf (# 18) GMT netCDF format (float) (COARDS-compliant) [DEFAULT]), approx. 1.15 GB
> 3. I then try to plot with imshow the data
>
> added below are the lines leading up to the error and the error itself.
>
>
> This is running on OS X 10.7.4 with a recently installed EPD 7.3.
>
>
> {code}
> from scipy.io import netcdf_file as netcdf
> data = netcdf('srtm_43_44_05_06_07_08.grd','r').variables['z'][::-1]
>
> fig, ax = subplots()
>
> data.shape
> Out[5]: (24004, 12002)
>
> im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])), interpolation='none')
> ---------------------------------------------------------------------------
> MemoryError Traceback (most recent call last)
> <ipython-input-6-f92e4c4c63b5> in <module>()
> ----> 1 im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])), interpolation='none')
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs)
> 6743 im.set_clim(vmin, vmax)
> 6744 else:
> -> 6745 im.autoscale_None()
> 6746 im.set_url(url)
> 6747
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/cm.py in autoscale_None(self)
> 281 if self._A is None:
> 282 raise TypeError('You must first set_array for mappable')
> --> 283 self.norm.autoscale_None(self._A)
> 284 self.changed()
> 285
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py in autoscale_None(self, A)
> 889 ' autoscale only None-valued vmin or vmax'
> 890 if self.vmin is None:
> --> 891 self.vmin = ma.min(A)
> 892 if self.vmax is None:
> 893 self.vmax = ma.max(A)
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in min(obj, axis, out, fill_value)
> 5873 def min(obj, axis=None, out=None, fill_value=None):
> 5874 try:
> -> 5875 return obj.min(axis=axis, fill_value=fill_value, out=out)
> 5876 except (AttributeError, TypeError):
> 5877 # If obj doesn't have a max method,
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in min(self, axis, out, fill_value)
> 5054 # No explicit output
> 5055 if out is None:
> -> 5056 result = self.filled(fill_value).min(axis=axis, out=out).view(type(self))
> 5057 if result.ndim:
> 5058 # Set the mask
>
> /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in filled(self, fill_value)
> 3388 return self._data
> 3389 else:
> -> 3390 result = self._data.copy()
> 3391 try:
> 3392 np.putmask(result, m, fill_value)
>
> MemoryError:
> {/code}
>
> This is more a NumPy issue than anything else. We need to know the min and the max of the array in order to automatically scale the colormap for display. Therefore, we query the array object for its min/max. Because we support masked arrays, the array is first cast as a masked array, and then these queries are done.
>
> It appears that in numpy's masked array module, it calculates the array's min by making a copy of itself first. I would have figured that it would have done its task differently. In the meantime, I suspect you can work around this problem by explicitly setting the vmin/vmax keyword arguments to imshow if you know them. Therefore, there should be no need to determine the array's min/max in this inefficient manner.
>
> Ben Root
>
Hi Ben,
I tried adding vmin & vmax the the imshow call but I still get a MemoryError.
The grid file is 1.15 GB and I have ~4.5 out of 8 GB of memory available when I launch ipython, 3.5 when I execute imshow and 2 when I execute plt.draw().
im = ax.imshow(data, aspect=((data.shape[1])/float(data.shape[0])), interpolation=None, vmin=-400., vmax=3000.)
plt.draw()
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
53 def draw_wrapper(artist, renderer, *args, **kwargs):
54 before(artist, renderer)
---> 55 draw(artist, renderer, *args, **kwargs)
56 after(artist, renderer)
57
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/figure.py in draw(self, renderer)
882 dsu.sort(key=itemgetter(0))
883 for zorder, func, args in dsu:
--> 884 func(*args)
885
886 renderer.close_group('figure')
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
53 def draw_wrapper(artist, renderer, *args, **kwargs):
54 before(artist, renderer)
---> 55 draw(artist, renderer, *args, **kwargs)
56 after(artist, renderer)
57
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/axes.py in draw(self, renderer, inframe)
1981
1982 for zorder, a in dsu:
-> 1983 a.draw(renderer)
1984
1985 renderer.close_group('axes')
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
53 def draw_wrapper(artist, renderer, *args, **kwargs):
54 before(artist, renderer)
---> 55 draw(artist, renderer, *args, **kwargs)
56 after(artist, renderer)
57
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/image.py in draw(self, renderer, *args, **kwargs)
353 warnings.warn("Image will not be shown correctly with this backend.")
354
--> 355 im = self.make_image(renderer.get_image_magnification())
356 if im is None:
357 return
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/image.py in make_image(self, magnification)
573 im, xmin, ymin, dxintv, dyintv, sx, sy = \
574 self._get_unsampled_image(self._A, [_x1, _x2, _y1, _y2],
--> 575 transformed_viewLim)
576
577 fc = self.axes.patch.get_facecolor()
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/image.py in _get_unsampled_image(self, A, image_extents, viewlim)
200 else:
201 if self._rgbacache is None:
--> 202 x = self.to_rgba(self._A, self._alpha, bytes=True)
203 self._rgbacache = x
204 else:
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/cm.py in to_rgba(self, x, alpha, bytes)
211 pass
212 x = ma.asarray(x)
--> 213 x = self.norm(x)
214 x = self.cmap(x, alpha=alpha, bytes=bytes)
215 return x
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py in __call__(self, value, clip)
843 clip = self.clip
844
--> 845 result, is_scalar = self.process_value(value)
846
847 self.autoscale_None(result)
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/colors.py in process_value(value)
829 if result.dtype.kind == 'f':
830 if isinstance(value, np.ndarray):
--> 831 result = result.copy()
832 elif result.dtype.itemsize > 2:
833 result = result.astype(np.float)
/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/ma/core.pyc in __call__(self, *args, **params)
2449 mask = instance._mask
2450 cls = type(instance)
-> 2451 result = getattr(data, methodname)(*args, **params).view(cls)
2452 result._update_from(instance)
2453 if result.ndim:
MemoryError: |