Robert Kern wrote: > On Fri, Jan 30, 2009 at 08:22, Neal Becker <[email protected]> wrote: >> Right now there are 2 options to create an array of constant value: >> >> 1) empty (size); fill (val) >> >> 2) ones (size) * val >> >> 1 has disadvantage of not being an expression, so can't be an arg to a >> function call. > > So wrap it in a function. > >> Also probably slower than create+fill @ same time > > Only marginally. In any case, (1) is exactly how ones() and zeros() > are implemented. I would be +1 on a patch that adds a filled() > function along the lines of ones() and zeros(), but I'm -1 on adding > this functionality to ones() or zeros(). > >> 2 is probably slower than create+fill @ same time >> >> Now what would be _really_ cool is a special array type that would >> represent >> a constant array without wasting memory. boost::ublas, for example, has >> this feature. > > In [2]: from numpy.lib.stride_tricks import as_strided > > In [3]: def hollow_filled(shape, value, dtype=None): > ...: x = asarray(value, dtype=dtype) > ...: return as_strided(x, shape, [0]*len(shape)) > ...: > > In [5]: hollow_filled([2,3,4], 5) > Out[5]: > array([[[5, 5, 5, 5], > [5, 5, 5, 5], > [5, 5, 5, 5]], > > [[5, 5, 5, 5], > [5, 5, 5, 5], > [5, 5, 5, 5]]]) > > In [6]: hollow_filled([2,3,4], 5.0) > Out[6]: > array([[[ 5., 5., 5., 5.], > [ 5., 5., 5., 5.], > [ 5., 5., 5., 5.]], > > [[ 5., 5., 5., 5.], > [ 5., 5., 5., 5.], > [ 5., 5., 5., 5.]]]) >
Where can I find doc on stride_tricks? Nothing here: http://docs.scipy.org/doc/numpy/search.html?q=stride_tricks&check_keywords=yes&area=default _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
