*julia> a = rand(3)* 
*3-element Array{Float64,1}:* 
*0.47428 * 
*0.505429* 
*0.198919* 
*julia> reshape(a, (3,1))* 
*3×1 Array{Float64,2}:* 
*0.47428 * 
*0.505429* 
*0.198919* 
*julia> reshape(a, (1,3))* 
*1×3 Array{Float64,2}:* 
*0.47428  0.505429  0.198919*

Is that what you want? (Note that for both of them, the result is 
2-dimensional.)

--Tim

On Monday, September 12, 2016 6:47:04 PM CDT Neal Becker wrote:
> I haven't studied it, but I guess that newaxis increases the dimensionality,
> while specifying 0 for the stride.  Can reshape do that?
> 
> Tim Holy wrote:
> > I'm not certain I understand what `np.newaxis` does, but doesn't `reshape`
> > do the same thing? (newaxis does look like a convenient way to specify
> > shape, though.)
> > 
> > Best,
> > --Tim
> > 
> > On Monday, September 12, 2016 3:28:56 PM CDT Neal Becker wrote:
> >> Some time ago I asked this question
> >> http://stackoverflow.com/questions/25486506/julia-broadcasting-equivalent
> >> -of -numpy-newaxis
> >> 
> >> As a more interesting example, here is some real python code I use:
> >> dist = mag_sqr (demod_out[:,np.newaxis] - const.map[np.newaxis,:])
> >> 
> >> where demod_out, const.map are each vectors, mag_sqr performs
> >> element-wise euclidean distance, and the result is a 2D array whose 1st
> >> axis matches the 1st axis of demod_out, and the 2nd axis matches the 2nd
> >> axis of const.map.
> >> 
> >> 
> >> From the answers I've seen, julia doesn't really have an equivalent
> >> functionality.  The idea here is, without allocating a new array,
> >> manipulate the strides to cause broadcasting.
> >> 
> >> AFAICT, the best for Julia would be just forget the vectorized code, and
> >> explicitly write out loops to perform the computation.  OK, I guess, but
> >> maybe not as readable.
> >> 
> >> Is there any news on this front?


Reply via email to