search
HomeBackend DevelopmentPython TutorialSummary of common methods in NumPy
Summary of common methods in NumPyAug 17, 2017 am 11:26 AM
numpyCommonly usedSummarize

NumPy is an open source numerical computing extension for Python. This tool can be used to store and process large matrices much more efficiently than Python's own nested list structure (which can also be used to represent matrices). NumPy (Numeric Python) provides many advanced numerical programming tools, such as matrix data types, vector processing, and sophisticated arithmetic libraries. Built for rigorous number crunching. It is mostly used by many large financial companies, as well as core scientific computing organizations such as Lawrence Livermore, and NASA uses it to handle some tasks that were originally done using C++, Fortran or Matlab.

The data type in numpy, ndarray type, is different from array.array in the standard library.

Creation of ndarray

>>> import numpy as np
>>> a = np.array([2,3,4])
>>> a
array([2, 3, 4])
>>> a.dtype
dtype('int64')
>>> b = np.array([1.2, 3.5, 5.1])
>>> b.dtype
dtype('float64')

Two-dimensional array

>>> b = np.array([(1.5,2,3), (4,5,6)])
>>> b
array([[ 1.5,  2. ,  3. ],
       [ 4. ,  5. ,  6. ]])

Specify the type when creating

>>> c = np.array( [ [1,2], [3,4] ], dtype=complex )
>>> c
array([[ 1.+0.j,  2.+0.j],
       [ 3.+0.j,  4.+0.j]])

Create some special matrices

>>> np.zeros( (3,4) )
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
>>> np.ones( (2,3,4), dtype=np.int16 )                # dtype can also be specified
array([[[ 1, 1, 1, 1],
        [ 1, 1, 1, 1],
        [ 1, 1, 1, 1]],
       [[ 1, 1, 1, 1],
        [ 1, 1, 1, 1],
        [ 1, 1, 1, 1]]], dtype=int16)
>>> np.empty( (2,3) )                                 # uninitialized, output may vary
array([[  3.73603959e-262,   6.02658058e-154,   6.55490914e-260],
       [  5.30498948e-313,   3.14673309e-307,   1.00000000e+000]])

Create some matrices with specific rules

>>> np.arange( 10, 30, 5 )
array([10, 15, 20, 25])
>>> np.arange( 0, 2, 0.3 )                 # it accepts float arguments
array([ 0. ,  0.3,  0.6,  0.9,  1.2,  1.5,  1.8])
>>> from numpy import pi
>>> np.linspace( 0, 2, 9 )                 # 9 numbers from 0 to 2
array([ 0.  ,  0.25,  0.5 ,  0.75,  1.  ,  1.25,  1.5 ,  1.75,  2.  ])
>>> x = np.linspace( 0, 2*pi, 100 )        # useful to evaluate function at lots of points
>>> f = np.sin(x)

Some basic operations

Addition, subtraction, multiplication and division trigonometric functions logical operations

>>> a = np.array( [20,30,40,50] )
>>> b = np.arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])
>>> a<35
array([ True, True, False, False], dtype=bool)

Matrix operations

There are in matlab. *,./etc.

But in numpy, if you use +,-,×,/, the priority is to perform addition, subtraction, multiplication and division between each point

If two matrices ( Square matrix) can perform operations between elements and perform matrix operations. Operations between elements will be performed first.

>>> import numpy as np
>>> A = np.arange(10,20)
>>> B = np.arange(20,30)
>>> A + B
array([30, 32, 34, 36, 38, 40, 42, 44, 46, 48])
>>> A * B
array([200, 231, 264, 299, 336, 375, 416, 459, 504, 551])
>>> A / B
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> B / A
array([2, 1, 1, 1, 1, 1, 1, 1, 1, 1])

If matrix operations need to be performed, it is usually matrix multiplication

>>> A = np.array([1,1,1,1])
>>> B = np.array([2,2,2,2])
>>> A.reshape(2,2)
array([[1, 1],
       [1, 1]])
>>> B.reshape(2,2)
array([[2, 2],
       [2, 2]])
>>> A * B
array([2, 2, 2, 2])
>>> np.dot(A,B)
8
>>> A.dot(B)
8

Some commonly used global functions

>>> B = np.arange(3)
>>> B
array([0, 1, 2])
>>> np.exp(B)
array([ 1.        ,  2.71828183,  7.3890561 ])
>>> np.sqrt(B)
array([ 0.        ,  1.        ,  1.41421356])
>>> C = np.array([2., -1., 4.])
>>> np.add(B, C)
array([ 2.,  0.,  6.])

Matrix index slice traversal

>>> a = np.arange(10)**3
>>> a
array([  0,   1,   8,  27,  64, 125, 216, 343, 512, 729])
>>> a[2]
8
>>> a[2:5]
array([ 8, 27, 64])
>>> a[:6:2] = -1000    # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000
>>> a
array([-1000,     1, -1000,    27, -1000,   125,   216,   343,   512,   729])
>>> a[ : :-1]                                 # reversed a
array([  729,   512,   343,   216,   125, -1000,    27, -1000,     1, -1000])
>>> for i in a:
...     print(i**(1/3.))
...
nan
1.0
nan
3.0
nan
5.0
6.0
7.0
8.0
9.0

Matrix traversal

>>> import numpy as np
>>> b = np.arange(16).reshape(4, 4)
>>> for row in b:
...  print(row)
... 
[0 1 2 3]
[4 5 6 7]
[ 8  9 10 11]
[12 13 14 15]
>>> for node in b.flat:
...  print(node)
... 
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Special operations of the matrix

Change the matrix shape- -reshape

>>> a = np.floor(10 * np.random.random((3,4)))
>>> a
array([[ 6.,  5.,  1.,  5.],
       [ 5.,  5.,  8.,  9.],
       [ 5.,  5.,  9.,  7.]])
>>> a.ravel()
array([ 6.,  5.,  1.,  5.,  5.,  5.,  8.,  9.,  5.,  5.,  9.,  7.])
>>> a
array([[ 6.,  5.,  1.,  5.],
       [ 5.,  5.,  8.,  9.],
       [ 5.,  5.,  9.,  7.]])

The difference between resize and reshape

resize will change the original matrix, reshape will not

>>> a
array([[ 6.,  5.,  1.,  5.],
       [ 5.,  5.,  8.,  9.],
       [ 5.,  5.,  9.,  7.]])
>>> a.reshape(2,-1)
array([[ 6.,  5.,  1.,  5.,  5.,  5.],
       [ 8.,  9.,  5.,  5.,  9.,  7.]])
>>> a
array([[ 6.,  5.,  1.,  5.],
       [ 5.,  5.,  8.,  9.],
       [ 5.,  5.,  9.,  7.]])
>>> a.resize(2,6)
>>> a
array([[ 6.,  5.,  1.,  5.,  5.,  5.],
       [ 8.,  9.,  5.,  5.,  9.,  7.]])

merge the matrices

>>> a = np.floor(10*np.random.random((2,2)))
>>> a
array([[ 8.,  8.],
       [ 0.,  0.]])
>>> b = np.floor(10*np.random.random((2,2)))
>>> b
array([[ 1.,  8.],
       [ 0.,  4.]])
>>> np.vstack((a,b))
array([[ 8.,  8.],
       [ 0.,  0.],
       [ 1.,  8.],
       [ 0.,  4.]])
>>> np.hstack((a,b))
array([[ 8.,  8.,  1.,  8.],
       [ 0.,  0.,  0.,  4.]])

The above is the detailed content of Summary of common methods in NumPy. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
怎么更新numpy版本怎么更新numpy版本Nov 28, 2023 pm 05:50 PM

更新numpy版本方法:1、使用“pip install --upgrade numpy”命令;2、使用的是Python 3.x版本,使用“pip3 install --upgrade numpy”命令,将会下载并安装,覆盖当前的NumPy版本;3、若使用的是conda来管理Python环境,使用“conda install --update numpy”命令更新即可。

numpy版本推荐使用哪个版本numpy版本推荐使用哪个版本Nov 22, 2023 pm 04:58 PM

推荐使用最新版本的NumPy1.21.2。原因是:目前,NumPy的最新稳定版本是1.21.2。通常情况下,推荐使用最新版本的NumPy,因为它包含了最新的功能和性能优化,并且修复了之前版本中的一些问题和错误。

python numpy中linspace函数怎么使用python numpy中linspace函数怎么使用May 01, 2023 am 09:34 AM

pythonnumpy中linspace函数numpy提供linspace函数(有时也称为np.linspace)是python中创建数值序列工具。与Numpyarange函数类似,生成结构与Numpy数组类似的均匀分布的数值序列。两者虽有些差异,但大多数人更愿意使用linspace函数,其很好理解,但我们需要去学习如何使用。本文我们学习linspace函数及其他语法,并通过示例解释具体参数。最后也顺便提及np.linspace和np.arange之间的差异。1.快速了解通过定义均匀间隔创建数值

如何查看numpy版本如何查看numpy版本Nov 21, 2023 pm 04:12 PM

查看numpy版本的方法:1、使用命令行查看版本,这将打印出当前版本;2、使用Python脚本查看版本,将在控制台输出当前版本;3、使用Jupyter Notebook查看版本,将在输出单元格中显示当前版本;4、使用Anaconda Navigator查看版本,在已安装的软件包列表中,可以找到其版本;5、在Python交互式环境中查看版本,将直接输出当前安装的版本。

numpy增加维度怎么弄numpy增加维度怎么弄Nov 22, 2023 am 11:48 AM

numpy增加维度的方法:1、使用“np.newaxis”增加维度,“np.newaxis”是一个特殊的索引值,用于在指定位置插入一个新的维度,可以通过在对应的位置使用np.newaxis来增加维度;2、使用“np.expand_dims()”增加维度,“np.expand_dims()”函数可以在指定的位置插入一个新的维度,用于增加数组的维度

如何使用Python中的numpy计算矩阵或ndArray的行列式?如何使用Python中的numpy计算矩阵或ndArray的行列式?Aug 18, 2023 pm 11:57 PM

在本文中,我们将学习如何使用Python中的numpy库计算矩阵的行列式。矩阵的行列式是一个可以以紧凑形式表示矩阵的标量值。它是线性代数中一个有用的量,并且在物理学、工程学和计算机科学等各个领域都有多种应用。在本文中,我们首先将讨论行列式的定义和性质。然后我们将学习如何使用numpy计算矩阵的行列式,并通过一些实例来看它在实践中的应用。行列式的定义和性质Thedeterminantofamatrixisascalarvaluethatcanbeusedtodescribethepropertie

numpy怎么安装numpy怎么安装Dec 01, 2023 pm 02:16 PM

numpy可以通过使用pip、conda、源码和Anaconda来安装。详细介绍:1、pip,在命令行中输入pip install numpy即可;2、conda,在命令行中输入conda install numpy即可;3、源码,解压源码包或进入源码目录,在命令行中输入python setup.py build python setup.py install即可。

使用NumPy在Python中计算给定两个向量的外积使用NumPy在Python中计算给定两个向量的外积Sep 01, 2023 pm 03:41 PM

两个向量的外积是向量A的每个元素与向量B的每个元素相乘得到的矩阵。向量a和b的外积为a⊗b。以下是计算外积的数学公式。a⊗b=[a[0]*b,a[1]*b,...,a[m-1]*b]哪里,a,b是向量。表示两个向量的逐元素乘法。外积的输出是一个矩阵,其中i和j是矩阵的元素,其中第i行是通过将向量‘a’的第i个元素乘以向量‘b’的第i个元素得到的向量。使用Numpy计算外积在Numpy中,我们有一个名为outer()的函数,用于计算两个向量的外积。语法下面是outer()函数的语法-np.oute

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.