• 几个常用的Numpy函数详解


    Numpy是python中最有用的工具之一。它可以有效地处理大容量数据。使用NumPy的最大原因之一是它有很多处理数组的函数。在本文中,将介绍NumPy在数据科学中最重要和最有用的一些函数。

    创建数组

    1、Array

    它用于创建一维或多维数组

    1. numpy.array(object, dtype=None, *,
    2.             copy=Trueorder='K', subok=False, ndmin=0, like=None)

    Dtype:生成数组所需的数据类型。
    ndim:指定生成数组的最小维度数。

    1. import numpy as np
    2. np.array([1,2,3,4,5])
    3. ----------------
    4. array([123456])

    还可以使用此函数将pandas的df和series转为NumPy数组

    1. sex = pd.Series(['Male','Male','Female'])
    2. np.array(sex)
    3. ------------------------
    4. array(['Male''Male''Female'], dtype=object)

    2、Linspace

    创建一个具有指定间隔的浮点数的数组。

    1. numpy.linspace(startstop, num=50, endpoint=True,
    2.                retstep=False, dtype=None, axis=0)[source]

    start:起始数字 

    end:结束 

    Num:要生成的样本数,默认为50。

    1. np.linspace(10,100,10)
    2. --------------------------------
    3. array([ 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.])

    3、Arange

    在给定的间隔内返回具有一定步长的整数。

    numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)
    

    step:数值步长。

    1. np.arange(5,10,2)
    2. -----------------------
    3. array([579])

    4、Uniform

    在上下限之间的均匀分布中生成随机样本。

    1. numpy.random.uniform(low=0.0, high=1.0size=None)
    2. np.random.uniform(5,10,size = 4)
    3. ------------
    4. array([6.474455715.607258738.821923277.47674099])
    5. np.random.uniform(size = 5)
    6. ------------
    7. array([0.833580920.417761340.72349553])
    8. np.random.uniform(size = (2,3))
    9. ------------
    10. array([[0.7032511 , 0.632120390.6779683 ],
    11.       [0.811508120.268456130.99535264]])

    5、Random.randint

    在一个范围内生成n个随机整数样本。

    1. numpy.random.randint(low, high=None, size=None, dtype=int)
    2. np.random.randint(5,10,10)
    3. ------------------------------
    4. array([6899769859])

    6、Random.random

    生成n个随机浮点数样本。

    1. numpy.random.random(size=None)
    2. np.random.random(3)
    3. ---------------------------
    4. array([0.876563960.247067160.98950278])

    7、Logspace

    在对数尺度上生成间隔均匀的数字。

    1. numpy.logspace(startstop, num=50, endpoint=True,
    2.                base=10.0, dtype=None, axis=0)

    Start:序列的起始值。End:序列的最后一个值。endpoint:如果为True,最后一个样本将包含在序列中。base:底数。默认是10。

    1. np.logspace(0,10,5,base=2)
    2. ------------------
    3. array([1.00000000e+005.65685425e+00
    4.        3.20000000e+011.81019336e+02,1.02400000e+03])

    8、zeroes

    np.zeroes会创建一个全部为0的数组。

    numpy.zeros(shape, dtype=float, order='C'*, like=None)
    

    shape:阵列的形状。

    Dtype:生成数组所需的数据类型。' int '或默认' float '

    1. np.zeros((2,3),dtype='int')
    2. ---------------
    3. array([[000],
    4.       [000]])
    5. np.zeros(5)
    6. -----------------
    7. array([0., 0., 0., 0., 0.])

    9、ones

    np.ones函数创建一个全部为1的数组。

    1. numpy.ones(shape, dtype=None, order='C'*, like=None)
    2. np.ones((3,4))
    3. ------------------
    4. array([[1., 1., 1., 1.],
    5.       [1., 1., 1., 1.],
    6.       [1., 1., 1., 1.]])

    10、full

    创建一个单独值的n维数组。

    numpy.full(shape, fill_value, dtype=None, order='C'*, like=None)
    

    fill_value:填充值。

    1. np.full((2,4),fill_value=2)
    2. --------------
    3. array([[2222],
    4.       [2222]])(2,4) : ꜱʜᴀᴘᴇ

    11、Identity

    创建具有指定维度的单位矩阵。

    1. numpy.identity(n, dtype=None, *, like=None)
    2. np.identity(4)
    3. ----------
    4. array([[1., 0., 0., 0.],
    5.       [0., 1., 0., 0.],
    6.       [0., 0., 1., 0.],
    7.       [0., 0., 0., 1.]])#ᴅᴇꜰᴀᴜʟᴛ ᴅᴀᴛᴀ ᴛʏᴘᴇ ɪꜱ `ꜰʟᴏᴀᴛ`

    数组操作

    12、min

    返回数组中的最小值。

    1. np.min(a, axis=None, out=None, keepdims=<no value>,
    2.        initial=<no value>, where=<no value>)

    axis:用于操作的轴。

    out:用于存储输出的数组。

    1. arr = np.array([1,1,2,3,3,4,5,6,6,2])
    2. np.min(arr)
    3. ----------------
    4. 1

    13、max

    返回数组中的最大值。

    1. np.max(a, axis=None,out=None)
    2. np.max(arr)
    3. ------------------
    4. 6

    14、unique

    返回一个所有唯一元素排序的数组。

    numpy.unique(ar, return_index=Falsereturn_inverse=Falsereturn_counts=False, axis=None, *equal_nan=True)
    

    return_index:如果为True,返回数组的索引。

    return_inverse:如果为True,返回唯一数组的下标。

    return_counts:如果为True,返回数组中每个唯一元素出现的次数。

    axis:要操作的轴。默认情况下,数组被认为是扁平的。

    1. np.unique(arr,return_counts=True)
    2. ---------------------
    3. (
    4. array([123456]),             ## Unique elements
    5. array([222112], dtype=int64) ## Count
    6. )

    15、mean

    返回数组的平均数

    1. numpy.mean(a, axis=None, dtype=Noneout=None)
    2. np.mean(arr,dtype='int')
    3. -------------------------------
    4. 3

    16、medain

    返回数组的中位数。

    1. numpy.medain(a, axis=None, out=None)
    2. arr = np.array([[1,2,3],[5,8,4]])
    3. np.median(arr)
    4. -----------------------------
    5. 3.5

    17、digitize

    返回输入数组中每个值所属的容器的索引。

    numpy.digitize(x, bins, right=False)[source]
    

    bin:容器的数组。right:表示该间隔是否包括右边或左边的bin。

    1. = np.array([-0.90.50.911.21.43.64.75.3])
    2. bins = np.array([0,1,2,3])
    3. np.digitize(a,bins)
    4. -------------------------------
    5. array([011222444], dtype=int64)
    6. Exp       Value
    7. < 0     :   0
    8. 0 <= x <1 :   1
    9. 1 <= x <2 :   2
    10. 2 <= x <3 :   3
    11. 3 <=x     :   4
    12. Compares -0.9 to 0, here x < 0 so Put 0 in resulting array.
    13. Compares 0.5 to 0, here 0 <= x <1 so Put 1.
    14. Compares 5.4 to 4, here 3<=x so Put 4

    18、reshape

    它是NumPy中最常用的函数之一。它返回一个数组,其中包含具有新形状的相同数据。

    1. numpy.reshape(shap)
    2. = np.random.randint(15,size=(4,3))
    3. A
    4. ----------------------
    5. array([[ 8141],
    6.       [ 8114],
    7.       [ 941],
    8.       [131311]])
    9. A.reshape(3,4)
    10. -----------------
    11. array([[ 81418],
    12.       [11494],
    13.       [ 1131311]])
    14. A.reshape(-1)  
    15. -------------------
    16. array([ 81418114941131311])

    19、expand_dims

    它用于扩展数组的维度。

    1. numpy.expand_dims(a, axis)
    2. arr = np.array([ 81418114941131311])
    3. np.expand_dims(A,axis=0)
    4. -------------------------
    5. array([[ 81418114941131311]])
    6. np.expand_dims(A,axis=1)
    7. ---------------------------
    8. array([[ 8],
    9.       [14],
    10.       [ 1],
    11.       [ 8],
    12.       [11],
    13.       [ 4],
    14.       [ 9],
    15.       [ 4],
    16.       [ 1],
    17.       [13],
    18.       [13],
    19.       [11]])

    20、squeeze

    通过移除一个单一维度来降低数组的维度。

    1. np.squeeze(a, axis=None)
    2. arr = np.array([[ 8],[14],[ 1],[ 8],[11],[ 4],[ 9],[ 4],[ 1],[13],[13],[11]])
    3. np.squeeze(arr)
    4. ---------------------------
    5. array([ 81418114941131311])

    21、count_nonzero

    计算所有非零元素并返回它们的计数。

    1. numpy.count_nonzero(a, axis=None, *, keepdims=False)
    2. = np.array([0,0,1,1,1,0])
    3. np.count_nonzero(a)
    4. --------------------------
    5. 3

    22、argwhere

    查找并返回非零元素的所有下标。

    1. numpy.argwhere(a)
    2. = np.array([0,0,1,1,1,0])
    3. np.argwhere(a)
    4. ---------------------
    5. array([[2],[3],[4]], dtype=int64)

    23、argmax & argmin

    argmax返回数组中Max元素的索引。它可以用于多类图像分类问题中获得高概率预测标签的指标。

    1. numpy.argmax(a, axis=None, out=None, *, keepdims=<no value>)
    2. arr = np.array([[0.12,0.64,0.19,0.05]])
    3. np.argmax(arr)
    4. ---------
    5. 1

    argmin将返回数组中min元素的索引。

    1. numpy.argmin(a, axis=None, out=None, *, keepdims=<no value>)
    2. np.argmin(min)
    3. ------
    4. 3

    24、sort

    对数组排序。

    numpy.sort(a, axis=1, kind=None, order=None)
    

    kind:要使用的排序算法。{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}

    1. arr = np.array([2,3,1,7,4,5])
    2. np.sort(arr)
    3. ----------------
    4. array([123457])

    25、abs

    1. numpy.absolute(x, /, out=None, *
    2.                where=True, casting='same_kind'
    3.                order='K', dtype=None, 
    4.                subok=True[, signature, extobj]) = <ufunc 'absolute'>

    返回数组中元素的绝对值。当数组中包含负数时,它很有用。

    1. A = np.array([[1,-3,4],[-2,-4,3]])np.abs(A)
    2. ---------------
    3. array([[1, 3, 4],
    4.       [2, 4, 3]])

    26、round

    将浮点值四舍五入到指定数目的小数点。

    numpy.around(a, decimals=0, out=None)
    

    decimals:要保留的小数点的个数。

    1. = np.random.random(size=(3,4))
    2. a
    3. -----
    4. array([[0.816956990.425648220.659514170.2731807 ],
    5.       [0.7017702 , 0.125358940.067476660.55733467],
    6.       [0.914644880.262590260.889662370.59253923]])
    7.      
    8. np.round(a,decimals=0)
    9. ------------
    10. array([[1., 0., 1., 1.],
    11.       [1., 1., 1., 1.],
    12.       [0., 1., 0., 1.]])
    13. np.round(a,decimals=1)
    14. -------------
    15. array([[0.80. , 0.60.6],
    16.       [0.50.70.70.8],
    17.       [0.30.90.50.7]])

    27、clip

    numpy.clip(a, a_min, a_max, out=None**kwargs)
    

    它可以将数组的裁剪值保持在一个范围内。

    1. arr = np.array([0,1,-3,-4,5,6,7,2,3])
    2. arr.clip(0,5)
    3. -----------------
    4. array([010055523])
    5. arr.clip(0,3)
    6. ------------------
    7. array([010033323])
    8. arr.clip(3,5)
    9. ------------------
    10. array([333355533])

    -END-

    扫码添加请备注:python,进群与宋老师面对面交流:517745409

     

  • 相关阅读:
    DL Homework 4
    IP协议-服务类型字段
    逆向-beginners之浮点数参数传递
    二叉树最大路径和问题
    深入浅出PyTorch——基础知识
    如何选择外贸网站服务器?
    遗传算法的改进——跳出局部最优机制的研究(选择算子、交叉算子、变异算子的改进)
    MySQL数据库详解 五:用户管理
    微信小程序毕业设计_论文校园活动报名管理系统+后台管理_项目源代码
    Java 18为什么要指定UTF-8为默认字符集
  • 原文地址:https://blog.csdn.net/qiqi1220/article/details/126646209