NumPy常用函数

NumPy

The Basics

NumPy 主要面向的对象是齐次多维数组。在NumPy中维度(dimension)被称为轴(axe)。轴的个数即为秩(rank)。

例如,一个坐标为[1, 2, 1]的点的秩为1,因为它只有一个轴,并且这个轴的长度为3。下面这个例子,这个数组的秩为2。第一个轴的长度为2,第二个轴的长度为3

[[1,0,0],
[0,1,2]]

NumPy的数组类(class)被称为ndarray。它的别名(alias)被叫做数组。需要注意的是,numpy.array与标准Python库类array.array不一样,它只处理一维数组,并且提供较少的功能。ndarray的主要属性如下:

  • ndarray.ndim
    数组的轴(axe)的数量。在Python中维度即为秩.
  • ndarray.shape
    这个属性包含了数组的各向维度,例如一个m*n的矩阵,其shape为元组(m,n)
  • ndarray.size
    数组中元素总共的数目。
  • ndarray.dtype
    用于描述数组中元素的类型
  • ndarray.itemsize
    数组中每个元素的字节数。例如,一个float64的字节数为8 =(64/8),等价于ndarray.dtype.itemsize。
  • ndarray.data
    用于存储数组的实际元素。
>>> import numpy as np
>>> a = np.arange(15).reshape(3,5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
'int32'
>>> a.itemsize
4
>>> type(a)
<class 'numpy.ndarray'>
>>> b = np.array([6,7,8])
>>> b
array([6, 7, 8])
>>> type(b)
<class 'numpy.ndarray'>

Array Creation

>>> a = np.array([2,3,4])
>>> a
array([2, 3, 4])
>>> a = np.array(1,2,3,4)   # wrong
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    a = np.array(1,2,3,4)
ValueError: only 2 non-keyword arguments accepted
>>> b = np.array([(1.5,2,3),(4,5,6)])
>>> b
array([[ 1.5,  2. ,  3. ],
       [ 4. ,  5. ,  6. ]])
>>> c = np.array([[1,2],[3,4]], dtype=complex)
>>> c
array([[ 1.+0.j,  2.+0.j],
       [ 3.+0.j,  4.+0.j]])
>>> np.zeros((3,4))
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
>>> np.ones(shape=(2,3),dtype=np.int16)
array([[1, 1, 1],
       [1, 1, 1]], dtype=int16)
>>> np.empty((2,3))
array([[  3.90311860e-322,   0.00000000e+000,   2.78145267e-307],
       [  4.00537061e-307,   2.23419104e-317,   8.36014030e+250]])
  • numpy.arange([start,]stop,[step,]dtype=None)

  • 功能:在区间[statr,stop)之间生成一个步长为step的连续数组。start的默认值为0,默认步长为1

  • numpy.linspace(start,stop,num=50,endpoint=True,restep=False,dtype=None)

  • 在区间[start,stop]内获取num个采样点

    • start:必要参数,返回序列的起始位置。
    • stop:返回序列的最后一个位置。
    • num:采样点的数目,即序列的长度。
    • endpoint:如果为True,则对于区间进行num-1等分,并且序列最后一个点为stop,如果为False,则对于区间尽心num等分,并且区间最后一个点为stop前一点。
    • restep:默认值为False。如果为True,返回值为(samples,step)
>>> np.linspace(start=1,stop=5,num=4)
array([ 1.        ,  2.33333333,  3.66666667,  5.        ])
>>> np.linspace(start=1,stop=5,num=4,endpoint=False)
array([ 1.,  2.,  3.,  4.])
  • numpy.random.rand(d0, d1,…, dn)
  • 功能:获取一个形状为(d0,d1,..dn)的随机数组

    • d0,d1,…,dn:shape
    • return: ndarray,shape(d0, d1,…,dn)
>>> np.random.rand(3,2)
array([[ 0.17227376,  0.22609618],
       [ 0.53162876,  0.70428079],
       [ 0.30794007,  0.36767049]])
  • numpy.random.normal(loc=0.0,scale=1.0,size=None)

  • 从一个正态分布中获取采样案例。

    • loc:正太分布的中心
    • scale:正太分布的标准差σ,即分布的宽度
    • size:可选参数。int或元组int集合。即输出数组的形状,如果size=(m,n,k)就会获取一个m*n*k的采样集合。如果size=None(default),只会返回一个数。
  • numpy.arctan(x)

    • x:arry_like
    • return:ndarry—每个元素的范围为(-π/2,π/2)
>>> np.arctan([0,1])
array([ 0.        ,  0.78539816])
  • numpy.arctan2(x1,x2)

  • 功能:按照元素(x2,x1)所在象限返回x1/x2的反正切值。

    • x1:array_like(y)
    • x2:array_like(x)
    • return:返回值的范围为[-π,+π]
>>> np.arctan2([-1,+1,+1,-1],[-1,-1,+1,+1])*180/np.pi
array([-135.,  135.,   45.,  -45.])
x1x2arctan(x1,x2)
+/- 0+0+/- 0
+/- 0-0+/- pi
> 0+/- inf+0/+pi
< 0+/- inf-0/-pi
+/- inf+inf+/- (pi/4)
+/- inf-inf+/- (3*pi/4)
  • numpy.title(A,reps)

  • 功能:对于一个数组进行复制从而得到新的数组

    • A:array_like。
    • reps:以A为单元进行复制的shape。
    • return:array_like。复制后得到的矩阵。
b = np.array([1,2])
>>> np.tile(A=b, reps = (4,3,2))
array([[[1, 2, 1, 2],
        [1, 2, 1, 2],
        [1, 2, 1, 2]],

       [[1, 2, 1, 2],
        [1, 2, 1, 2],
        [1, 2, 1, 2]],

       [[1, 2, 1, 2],
        [1, 2, 1, 2],
        [1, 2, 1, 2]],

       [[1, 2, 1, 2],
        [1, 2, 1, 2],
        [1, 2, 1, 2]]])

>>> a = np.array([[1,2],[3,4]])
>>> np.tile(A=a, reps=(1,2))
array([[1, 2, 1, 2],
       [3, 4, 3, 4]])

转换过程:

numpy_title

Ptinting Arrays

>>> a = np.arange(6)
>>> print(a)
[0 1 2 3 4 5]
>>> b = np.arange(12).reshape(4,3)
>>> b
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
>>> print(b)
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
>>> c = np.arange(24).reshape(2,3,4)
>>> print(c)
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

Basic 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], dtype=int32)
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])
>>> a<35
array([ True,  True, False, False], dtype=bool)
Python中的NumPy库是一个非常有用的科学计算库,它提供了许多常用函数用于处理数组和矩阵。以下是一些Python中NumPy常用函数的介绍: 1. numpy.array():创建一个NumPy数组。可以传入一个列表或者元组作为参数,返回一个NumPy数组对象。 2. numpy.arange():创建一个具有指定范围和步长的数组。可以设置起始值、结束值和步长,返回一个包含这个范围内所有值的NumPy数组。 3. numpy.zeros():创建一个指定大小的全0数组。可以传入一个表示数组形状的元组或者整数作为参数,返回一个全0的NumPy数组。 4. numpy.ones():创建一个指定大小的全1数组。与numpy.zeros()类似,可以传入一个表示数组形状的元组或者整数作为参数,返回一个全1的NumPy数组。 5. numpy.linspace():在指定的范围内创建均匀间隔的数组。可以设置起始值、结束值和数组长度,返回一个包含指定范围内均匀间隔的元素的NumPy数组。 6. numpy.random.rand():生成指定形状的随机数数组。可以传入一个表示数组形状的元组或者整数作为参数,返回一个包含指定形状的随机数的NumPy数组。 7. numpy.max():返回数组中的最大值。可以传入一个NumPy数组作为参数,返回数组中的最大值。 8. numpy.min():返回数组中的最小值。可以传入一个NumPy数组作为参数,返回数组中的最小值。 9. numpy.mean():计算数组的平均值。可以传入一个NumPy数组作为参数,返回数组的平均值。 10. numpy.sum():计算数组中所有元素的和。可以传入一个NumPy数组作为参数,返回数组中所有元素的和。 11. numpy.reshape():改变数组的形状。可以传入一个表示新形状的元组作为参数,返回一个具有新形状的NumPy数组。 这些只是Python中NumPy库中常用函数的一部分,还有许多其他有用的函数可以用于数组和矩阵的操作。希望这些函数能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值