*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?