In recent years, python has become very popular due to the rise of data science and machine learning. This is mainly because Python is easy to learn and has a large number of third-party libraries, thus accumulating a large number of users. When Python is applied to scientific computing, there are two problems. One is that Python itself is not fast enough, and the other is that matrix is not a basic data type. The first problem can be well solved by rewriting key codes in C/C++, or by using numba. For the second one, people have invented Numpy which has become the actual matrix computing standard in Python. Although it can do linear algebra, limited by the syntax of Python, using Numpy to initialize a matrix is always not simple enough. We have to do it like this: import numpy as np a=np.array([1,2,3]) b=np.array([[1,2,3],[4,5,6]]) While, you know, in Matlab and Julia(A new ambitious and interesting language) it is in this way: a=[1,2,3] or a=[1 2 3] b=[1,2,3;4,5,6] or b=[1 2 3;4 5 6]
Of course, python, as a general-purpose language, is not limited to scientific computing, but also used for crawlers, web development, and even writing GUI programs. Therefore, many developers do not need matrix operations, nor need to use numpy as a standard library. Since numpy has become the cornerstone of Python scientific computing, there is no need to reinvent another wheel, that is, to design new matrix data types. I suggest adding some parsing rules to the List data type to facilitate the initialization of a matrix. (1) Keeping the original syntax of List unchanged,for example: a = [1,2,3] # will be parsed to a normal list. b = [[1,2,3],[4,5,6]] # will be parsed to a normal list,too. Simply put, all the original list syntax remains unchanged. (2) Using semicolons as a flag to make a better integration of a List-like data type and Numpy. The Python interpreter will check whether the numpy library is installed. If not, it will stop running and remind the user to install it. The expected syntax: c = [1,2,3;] or c = [1 2 3;] or c = [1 2 3] Notice the semicolon after the last number. If numpy is found, c will be parsed as a Numpy ndarray. All these forms are equivelent to c = np.array([1,2,3]). For a vector, the semicolon is the key for Python to parse it as a Numpy ndarray. d=[1,2,3;4,5,6] or d=[1,2,3;4,5,6;] or d=[1 2 3;4 5 6] or d=[1 2 3;4 5 6;] Notice the semicolons. If numpy is found, d will be parsed as a Numpy ndarray. All these forms are equivelent to d=np.array([[1,2,3],[4,5,6]]) You see,for defining a matrix or a vector,it will be nearly as simple as Matalab or Julia! Thank you! _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/MGMU6TMPBP7HKIA2TAQI4QG4KCSEQVVQ/ Code of Conduct: http://python.org/psf/codeofconduct/