these u} forms are new and never showed up in release notes or nuvoc. it is not identical to [`u`]}
On Sunday, February 6, 2022, 03:15:08 p.m. EST, Henry Rich <[email protected]> wrote: Another way to replace the second column with 0: mat =. 0 (<a:;1)} mat monad m} is seldom a good solution. I suggest mat =. 10 (I.@:(1&=)@,@])} mat NB. replace 1 values with 10 mat =. _ (I.@:(0 = 5 | ,@]))} mat NB. replace multiples of 5 with _ for these unusual cases. Operations on rows/columns do not have a special notation. You must extract the row/col, operate on it, and replace it. Use v0`v1`v2} to combine these actions: mat =. 1 (+ {."1)`((<a:;0)"_)`]} mat NB. add 1 to col 0, replace in col 0 mat =. 1 (+ 3&{)`(3:)`]} NB. add 1 to row 3 For more complex stuff you need the details of (x m} y) in NuVoc. For scatter read where i is a table, each row of which is an index list of a desired cell, use i (<"1@[ { ]) mat For scatter modify, use newvalues i} mat NB. where i has rank > 1, giving the index list of each cell to be modified. Henry Rich On 2/6/2022 2:24 PM, Andrew P wrote: > I am trying to learn how to manipulate tables of numbers in J coming from a > NumPy/Python background. Assuming *mat* is a 10x10 matrix, that's what I > have figured out so far: > > - Replace values equal to 1 with 10 > (mat e. 1) } mat ,: 10 > - Replace all non-multiples of 5 with _ > (-. 0 = mat |~ 5) } mat ,: _ > - Multiply each column by its index > mat (*" 1) i. 10 > - Multiply each row by its index > mat (*" 0) i. 10 > - Replace the second column with 0 > 0 (1) }"1 mat > - Replace the second column with 0 (another way) > 0 (< (i.10); 1 ) } mat > - Take the diagonal of the matrix > (<0 1)&|: mat > > Now, there are some tasks that I can do in NumPy but haven't found how to > do in J. For instance: > - Add 1 to each value in the first column > x[:,1] += 1 > - Add 1 to each value in the third row > x[3,:] += 1 > > In each of those cases, I am selecting the cells by their indexes rather > than their values, and am using the existing values to generate the new > ones. Is that possible in J? > > I would also like to figure out how to modify nontrivial sequences of > indexes, for instance, diagonals or cells where both the row index and the > column index are even numbers. Where should I start if I want to do that > kind of thing? > > Any suggestion would be highly appreciated. > > > Andrew > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- This email has been checked for viruses by AVG. https://www.avg.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
