On Wed, Jan 27, 2016 at 9:12 AM, Mirmojtaba Gharibi < mojtaba.gharibi@gmail.com> wrote:
MATLAB has a built-in easy way of achieving component-wise operation and I think Python would benefit from that without use of libraries such as numpy.
I've always thought there should be a component-wise operations in Python. The wlay to do it now is somthing like: [i + j for i,j in zip(a,b)] is really pretty darn wordy, compared to : a_numpy_array + another_numpy array (similar in matlab). But maybe an operator is the way to do it. But it was long ago decide dnot to introduce a full set of extra operators, alla matlab: .+ .* etc.... rather, it was realized that for numpy, which does element-wise operations be default, matrix multiplication was really the only non-elementwise operation widely used, so the new @ operator was added. And we're kind of stuck --even if we added a full set, then in numpy, the regular operators would be element wise, but for built-in Python sequences, the special ones would be elementwise -- really confusing! if you really want this, I'd make your own sequences that re-define the operators. Or just use Numpy... you can use object arrays if you want to handle non-numeric values: In [*4*]: a1 = np.array(["this", "that"], dtype=object) In [*5*]: a2 = np.array(["some", "more"], dtype=object) In [*6*]: a1 + a2 Out[*6*]: array(['thissome', 'thatmore'], dtype=object) -CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker@noaa.gov