I was going through my Data Science course material which contained the phenomenon of creating a 2D Symmetric Array Subclass in Python using NumPy, which didn’t make any sense to me. Can anyone brief me on what is this in maybe 2-3 lines, and also explain this phenomenon using a code snippet and tell me how is the concept implemented in the code?

1 Like

Hello @safiaa.02, a symmetric array has the same values across its diagonal axis, meaning the value at the `i-th`

row and `j-th`

column is equal to the value at the `j-th`

row and `i-th`

column. These arrays are useful in linear algebra, network analysis, and graph theory. Here is how you can implement this in code:

- In this code, a custom function is created that takes a NumPy array as input and returns a new array that is symmetric along its diagonal.
- It uses
`np.triu()`

to extract the upper triangular part of the input array. and`np.tril()`

to extract the lower triangular part of the transposed array and`k=1`

is specified which means that the diagonal elements are excluded. - Lastly, the function adds the upper and lower triangular parts together to create a symmetric array. The resulting array has the same shape as the input array, and each element
`Z[i,j]`

is equal to`Z[j,i]`

.

I hope this will be helpful to you.