Swap arrays in an numpy 2d array based on its content

swap the mth and nth rows of the 2-d numpy array
numpy swap columns
numpy swap rows
write a numpy program to swap two columns in a 2d numpy array
create an (n x n) 2d array with 1 on the border and 0 on the inside.
array swap python
how to swap rows in 2d array
numpy transpose 3d array

I have a numpy array

a = ([[1,2,3],
      [2,2,2],
      [1,5,3],
      [3,3,1]])


swap1 = [2,2,2]

swap2 = [3,3,1]

I want to swap the rows which are equal to swap1 and swap2 without being aware of the index of these 2 rows. I want the output to look like this

Out = ([[1,2,3],
        [3,3,1],
        [1,5,3],
        [2,2,2]])

What would be the best way to do this? I want to avoid loops if that's an option. Thanks!


>>> a = np.array([[1,2,3],
      [2,2,2],
      [1,5,3],
      [3,3,1]])
>>> x = [2,2,2]
>>> y = [3,3,1]

Make a boolean array of the rows you are interested in

>>> xmask = np.all(a==x,axis=1)
>>> ymask = np.all(a==y,axis=1)
>>> xmask
array([False,  True, False, False])
>>> ymask
array([False, False, False,  True])

Then use them to change the values

>>> a[xmask] = y
>>> a[ymask] = x
>>> a
array([[1, 2, 3],
       [3, 3, 1],
       [1, 5, 3],
       [2, 2, 2]])
>>>

If the array is square

>>> a = np.array([[1,2,3,4],
      [2,2,2,9],
      [1,5,3,1],
      [3,3,1,8]])
>>> y = [3,3,1,8]
>>> x = [2,2,2,9]
>>> xmask = np.all(a==x,axis=1)
>>> ymask = np.all(a==y,axis=1)
>>> a[xmask,:] = y
>>> a[ymask,:] = x

Boolean indexing

Swapping elements of numpy 2d-array by a simultaneuous , I observed that swapping rows of numpy 2d-array by a simultaneous assignment overwrites the elements. What I felt to be odd is this overwrite  Previous: Write a NumPy program to find elements within range from a given array of numbers. Next: Write a NumPy program to get the row numbers in given array where at least one item is larger than a specified value.


My solution running on whole list, if that's what you need so all right.

def list_swap(a, swap1, swap2):
# Running on the list
for list in a:
    if (list == swap1):
        list = swap2
    else if (list == swap2):
        list = swap1

In python you can compare lists, so there is a simple function thats running on the list and changing values if she needs to.

NumPy: Swap columns in a given array, NumPy Array Object Exercises, Practice and Solution: Write a Original array: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] After swapping arrays: [[ 1 0 2 Previous: Write a NumPy program to find elements within range from a given array of numbers. Explanation: the shortcuts based on + (including the implied use in  You will use them when you would like to work with a subset of the array. The fundamental object of NumPy is its ndarray (or numpy. In the case of a two-dimensional array, it flips vertically and horizontally. amax() Create an empty 2D Numpy Array / matrix and append rows or columns in Introduction to NumPy Arrays.


use map its very easy.

a = map(lambda x:([3,3,1]) if x == [2,2,2] else ([2,2,2] if x == [3,3,1] else x), a)

or (according to your variables)

a = map(lambda x:(swap2) if x == swap1 else (swap1 if x == swap2 else x), a)

see no loops, a single liner and you got your result

Result.

[[1, 2, 3], [3, 3, 1], [1, 5, 3], [2, 2, 2]]

Array manipulation routines, Copies values from one array to another, broadcasting as necessary. shape (a) Gives a new shape to an array without changing its data. ravel (a[, order]) swapaxes (a, axis1, axis2) Stack 1-D arrays as columns into a 2-D array. The array is expected to be a ``numpy`` array, but it can be any is supposed to work both for. PNG to NumPy array (reading)¶ The best thing to do (I think) is to convert each PyPNG row to a 1‑dimensional numpy array, then stack all of those arrays together to make a 2‑dimensional array. array) – Points on the X axis by.


For numpy array:

import numpy as np

a = np.array([[1,2,3],
              [2,2,2],
              [1,5,3],
              [3,3,1]])

swap1 = [2,2,2]
swap2 = [3,3,1]

id1 = np.where(np.all(a == swap1, axis = 1))
id2 = np.where(np.all(a == swap2, axis = 1))

a[id2], a[id1] = a[id1], a[id2]

print(a)
# [[1 2 3]
#  [3 3 1]
#  [1 5 3]
#  [2 2 2]]


For list:

idxs = [ [idx, e] for idx, e in enumerate(a) if e == swap1 or e == swap2 ]
idxs[0][0], idxs[1][0] = idxs[1][0], idxs[0][0]

for i in idxs:
  a[i[0]] = i[1]
print(a)

#=> [[1, 2, 3], [3, 3, 1], [1, 5, 3], [2, 2, 2]]

NumPy: Transpose ndarray (swap rows and columns, rearrange , T), the ndarray method transpose() and the numpy.transpose() function. To transpose NumPy array ndarray (swap rows and columns), use the T attribute ( .T ), the ndarray method Here, the following contents will be described. As mentioned above, two-dimensional arrays can be transposed. Then, you can use np as prefix to the start of any program. Create an empty 2D Numpy Array / matrix and append rows or columns in python; 6 Ways to check if all values in Numpy Array are zero (in both 1D & 2D arrays) - Python; Delete elements, rows or columns from a Numpy Array by index positions using numpy. Please read disclosure for more info.


import numpy as np
ar=np.array([[1,2,3],[2,2,2],[1,5,3],[3,3,1]])
swap1 = [2,2,2]

swap2 = [3,3,1]
def swapfunc( x ):
    if (x==swap2).all():
        return swap1
    else:
        return x

ar=np.apply_along_axis( swapfunc, axis=1, arr=ar )
print(ar)

Output

[[1 2 3]
 [2 2 2]
 [1 5 3]
 [2 2 2]]

Accessing Data Along Multiple Dimensions in an Array, Topic: Indexing into multi-dimensional numpy arrays, Difficulty: Easy, Category: Section. we use 0-based indices and slicing to access the content of an array. NumPy specifies the row-axis (students) of a 2D array as “axis-0” and the These permit us to reshape an array, change its dimensionality, and swap the  Data manipulation in Python is nearly synonymous with NumPy array manipulation: even newer tools like Pandas are built around the NumPy array.This section will present several examples of using NumPy array manipulation to access data and subarrays, and to split, reshape, and join the arrays.


The Basics of NumPy Arrays, Data manipulation in Python is nearly synonymous with NumPy array manipulation: even newer tools like Pandas (Chapter 3) are built around the NumPy array. arrays; Indexing of arrays: Getting and setting the value of individual array elements arrays, a one-dimensional, two-dimensional, and three-dimensional array. Many binaries depend on numpy-1. Since these strings are really just arrays, we can access each character in the array using subscript notation, as in: cout "Third char is: " label[2] endl; which prints out the third character, n. array (H) The take home message is that there is nothing magic going on when Python or R fits a statistical model using a.


Sorting Arrays, This section covers algorithms related to sorting values in NumPy arrays. finds the minimum value from a list, and makes swaps until the list is sorted. Although Python has built-in sort and sorted functions to work with lists, we won't discuss specific rows or columns of a multidimensional array using the axis argument. The concept of Multidimensional Array can be explained as a technique of defining and storing the data on a format with more than two dimensions (2D). 1 array[3] ='Numpy' 1 ValueError: invalid literal for int with base 10: 'Numpy' Creating a Two-dimensional Array. sample() function has two arguments, and both are required.


Interchange elements of first and last columns in matrix , Below is the implementation of the above approach : C++; Java; Python 3; C#; PHP. C++. To transpose NumPy array ndarray (swap rows and columns), use the T attribute (. Constructing 3D array using numpy. The NumPy array numpy. pro tip You can save a copy for yourself with the Copy or Remix button. Complex arrays are NOT handled. Numpy Filter 2d Array By Condition.