HP Forums

Full Version: Some of Python's linalg commands in HP Prime
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Matrix Format [ [ row ], [ row ], … [ row ] ]

linspace(start, stop, number of points desired + 1)

arange(start, stop, step size); default step size: 1; returns a 1 row array from start to stop using step size

identity(n): returns an identity matrix as n x n

transpose(matrix): transpose of a matrix

inv(matrix): inverse of a matrix

shape(matrix): returns the dimensions of the matrix in an ordered pair (row, columns)

rref(matrix): row reduced echelon form of a matrix

det(matrix): determinant of a square matrix

peval(array of coefficients, x): polynomial evaluation (order is from high to low), can take complex arguments

horner(array of coefficients, x): polynomial evaluation using Horner’s method

pceoff(array of roots): returns an array representing a polynomial’s coefficients, can take complex arguments

proot(array of coefficients): returns an array of roots, can take complex arguments

sub(array, array) or sub(matrix, matrix): subtraction element by element

dot(array, array): dot product

cross(array, array): cross product

imag(complex number): imaginary part – works on arrays and matrices

real(complex number): real part – works on arrays and matrices

I believe that fft and ifft have to do with fast fourier transforms.
thanks Eddie.

(05-08-2021 01:49 PM)Eddie W. Shore Wrote: [ -> ]I believe that fft and ifft have to do with fast fourier transforms.

yup; the integrated Help has a few examples…
Those sound like the function names from the Prime CAS and the 50g.

BTW, pcoeff is misspelled. (05-09-2021 05:36 PM)John Keith Wrote: [ -> ]Those sound like the function names from the Prime CAS and the 50g.

BTW, pcoeff is misspelled. Sorry. Good catch!
oops, sorry, my comment re Help of course refers to the CAS commands, whereas this thread is about Python… I need more coffee.
(05-08-2021 01:49 PM)Eddie W. Shore Wrote: [ -> ]Matrix Format [ [ row ], [ row ], … [ row ] ]

linspace(start, stop, number of points desired + 1)

arange(start, stop, step size); default step size: 1; returns a 1 row array from start to stop using step size

identity(n): returns an identity matrix as n x n

transpose(matrix): transpose of a matrix

inv(matrix): inverse of a matrix

shape(matrix): returns the dimensions of the matrix in an ordered pair (row, columns)

rref(matrix): row reduced echelon form of a matrix

det(matrix): determinant of a square matrix

peval(array of coefficients, x): polynomial evaluation (order is from high to low), can take complex arguments

horner(array of coefficients, x): polynomial evaluation using Horner’s method

pceoff(array of roots): returns an array representing a polynomial’s coefficients, can take complex arguments

proot(array of coefficients): returns an array of roots, can take complex arguments

sub(array, array) or sub(matrix, matrix): subtraction element by element

dot(array, array): dot product

cross(array, array): cross product

imag(complex number): imaginary part – works on arrays and matrices

real(complex number): real part – works on arrays and matrices

I believe that fft and ifft have to do with fast fourier transforms.

Hi, I found it difficult to transpose a matrix with PYTHON. For instance:
transpose ([[1,2,3], [4,5,6]]) gives me this result: [[1,4], [3,2], [5,6]]
The correct result is: [[1,4], [2,5], [3,6]].
Is there a bag perhaps?
There is indeed a bug in transpose for non square matrices.
(09-10-2021 04:55 AM)parisse Wrote: [ -> ]There is indeed a bug in transpose for non square matrices.

Thanks for the answer, Parisse. Since I had to use the "transpose" command in my Python program, I had to write a subroutine to transpose the arrays:

Code:

from linalg import *

def transposeRr(matriceRr):
L=shape(matriceRr);
r=L;
c=L;
matricezero=zeros(c,r);
for u in range(0,r):
for uu in range (0,c):
matricezero[uu][u]=matriceRr[u][uu];
return matricezero;
(09-11-2021 09:13 AM)robmio Wrote: [ -> ]Since I had to use the "transpose" command in my Python program, I had to write a subroutine to transpose the arrays ...

Is matrix simply list of list ? If yes, we can transpose with a 1-liner.

>>> transpose = lambda a: [list(r) for r in zip(*a)]
>>> transpose([[1,2,3], [4,5,6]])
[[1, 4], [2, 5], [3, 6]]
(09-11-2021 10:36 AM)Albert Chan Wrote: [ -> ]
(09-11-2021 09:13 AM)robmio Wrote: [ -> ]Since I had to use the "transpose" command in my Python program, I had to write a subroutine to transpose the arrays ...

Is matrix simply list of list ? If yes, we can transpose with a 1-liner.

>>> transpose = lambda a: [list(r) for r in zip(*a)]
>>> transpose([[1,2,3], [4,5,6]])
[[1, 4], [2, 5], [3, 6]]

Congratulations! This short solution you proposed works very well in my program
Reference URL's
• HP Forums: https://www.hpmuseum.org/forum/index.php
• :