NumPy
Posted huiyichanmian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy相关的知识,希望对你有一定的参考价值。
一、NumPy简介
NumPy是使用Python进行科学计算的基本软件包。它包含以下内容:
-
强大的N维数组对象
-
复杂的(广播)功能
-
集成C / C ++和Fortran代码的工具
-
有用的线性代数,傅立叶变换和随机数功能
除了其明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使NumPy可以无缝,快速地与各种数据库集成。
NumPy包的核心是ndarray对象,n维数组,电脑上的所有数据都是数字形式保存
二、创建ndarray
1、使用np.array()由Python中的list创建
注意:
numpy默认ndarray的所有元素的类型是相同的
如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
# 一维数组 >>>l = [1,2,3,4,5,6] >>>l [1,2,3,4,5,6] >>>type(l) list >>>nd = np.array(l) >>>nd array([1, 2, 3, 4, 5, 6]) >>>type(nd) numpy.ndarray # 二维数组 >>>l2 = [[1,3,5,7],[2,4,6,8]] >>>nd2 = np.array(l2) >>>nd2 array([[1, 3, 5, 7], [2, 4, 6, 8]])
扩展:ndarray中的方法运行时间与Python自定义方法运行时间对比
使用ndarray中的方法
>>>x = np.arange(0,1000000,1) >>>%timeit x.sum() # %timeit在ipython的魔法方法,计算平均运行速度 7.49 µs ± 297 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
使用Python自定义方法
>>> def sum2(x): ...: ret=0 ...: for i in x: ...: ret+=i ...: return ret >>> %timeit sum2(x) 943 µs ± 21.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
2、使用np的routines函数创建
2.1、np.ones(shape,dtype=None, order=‘C‘)
>>>np.ones(shape=(5,5),dtype=np.int16) 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, 1]], dtype=int16)
2.2、np.zeros(shape, dtype=float,order=‘C‘)
>>>np.zeros(shape=(2,3,4),dtype=np.float16,order=‘C‘) array([[[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]], [[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]], dtype=float16)
2.3、np.full(shape,fill_value,dtype=None,order=‘C‘)
>>>np.full(shape=(3,5),fill_value=3.14) array([[3.14, 3.14, 3.14, 3.14, 3.14], [3.14, 3.14, 3.14, 3.14, 3.14], [3.14, 3.14, 3.14, 3.14, 3.14]])
2.4、np.eye(N,M=None,k=0,dtype=float)
对角线为1,其他都为0(单位矩阵)
>>>np.eye(N=5) array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
2.5、np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0)
等差数列,默认元素个数为50
>>>np.linspace(0,100,num=101) array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54., 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., 100.])
2.6、np.random.randint(low, high=None, size=None, dtype=‘l‘)
>>>np.random.randint(0,100,size=(5,5)) array([[74, 88, 31, 50, 86], [36, 30, 60, 82, 52], [75, 35, 13, 62, 56], [55, 81, 11, 31, 35], [70, 46, 37, 50, 15]])
以上是关于NumPy的主要内容,如果未能解决你的问题,请参考以下文章