• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

50个常用的 Numpy 函数

武飞扬头像
空景 Sadnes╰つ677
帮助1

目录

一、创建数组

1、Array

2、Linspace

3、Arange

4、Uniform

5、Random.randint

6、Random.random

7、Logspace

8、zeroes

9、ones

10、full

11、Identity

二、数组操作

12、min

13、max

14、unique

15、mean

16、medain

17、digitize

18、reshape

19、expand_dims

20、squeeze

21、count_nonzero

22、argwhere

23、argmax & argmin

24、sort

25、abs

26、round

27、clip

三、替换数组中的值

28、where

29、put

30、copyto

四、集合操作

31、查找公共元素

32、查找不同元素

33、从两个数组中提取唯一元素

34、合并

五、数组分割

35、水平分割

36、垂直分割

六、数组叠加

37、水平叠加

38、垂直叠加

七、数组比较

39、allclose

40、equal

八、重复的数组元素

41、repeat

42、tile

九、爱因斯坦求和

43、einsum

十、统计分析

44、直方图

45、百分位数

46、标准偏差

47、方差

十一、数组打印

48、显示带有两个十进制值的浮点数

十二、保存和加载数据

49、保存

50、加载


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

一、创建数组

1、Array

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

  1.  
    numpy.array(object, dtype=None, *,
  2.  
    copy=True, order='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([1, 2, 3, 4, 5, 6])

还可以使用此函数将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(start, stop, 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([5, 7, 9])

4、Uniform

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

  1.  
    numpy.random.uniform(low=0.0, high=1.0, size=None)
  2.  
     
  3.  
    np.random.uniform(5,10,size = 4)
  4.  
    ------------
  5.  
    array([6.47445571, 5.60725873, 8.82192327, 7.47674099])
  6.  
     
  7.  
    np.random.uniform(size = 5)
  8.  
    ------------
  9.  
    array([0.83358092, 0.41776134, 0.72349553])
  10.  
     
  11.  
    np.random.uniform(size = (2,3))
  12.  
    ------------
  13.  
    array([[0.7032511 , 0.63212039, 0.6779683 ],
  14.  
    [0.81150812, 0.26845613, 0.99535264]])

5、Random.randint

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

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

6、Random.random

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

  1.  
    numpy.random.random(size=None)
  2.  
     
  3.  
    np.random.random(3)
  4.  
    ---------------------------
  5.  
    array([0.87656396, 0.24706716, 0.98950278])

7、Logspace

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

  1.  
    numpy.logspace(start, stop, 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 00, 5.65685425e 00,
  4.  
    3.20000000e 01, 1.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([[0, 0, 0],
  4.  
    [0, 0, 0]])
  5.  
     
  6.  
    np.zeros(5)
  7.  
    -----------------
  8.  
    array([0., 0., 0., 0., 0.])

9、ones

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

  1.  
    numpy.ones(shape, dtype=None, order='C', *, like=None)
  2.  
     
  3.  
    np.ones((3,4))
  4.  
    ------------------
  5.  
    array([[1., 1., 1., 1.],
  6.  
    [1., 1., 1., 1.],
  7.  
    [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([[2, 2, 2, 2],
  4.  
    [2, 2, 2, 2]])(2,4) : ꜱʜᴀᴘᴇ

11、Identity

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

  1.  
    numpy.identity(n, dtype=None, *, like=None)
  2.  
     
  3.  
    np.identity(4)
  4.  
    ----------
  5.  
    array([[1., 0., 0., 0.],
  6.  
    [0., 1., 0., 0.],
  7.  
    [0., 0., 1., 0.],
  8.  
    [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.  
     
  3.  
    np.max(arr)
  4.  
    ------------------
  5.  
    6

14、unique

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

numpy.unique(ar, return_index=False, return_inverse=False, return_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([1, 2, 3, 4, 5, 6]), ## Unique elements
  5.  
    array([2, 2, 2, 1, 1, 2], dtype=int64) ## Count
  6.  
    )

15、mean

返回数组的平均数

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

16、medain

返回数组的中位数。

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

17、digitize

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

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

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

  1.  
    a = np.array([-0.9, 0.5, 0.9, 1, 1.2, 1.4, 3.6, 4.7, 5.3])
  2.  
    bins = np.array([0,1,2,3])
  3.  
    np.digitize(a,bins)
  4.  
    -------------------------------
  5.  
    array([0, 1, 1, 2, 2, 2, 4, 4, 4], dtype=int64)
  6.  
    Exp Value
  7.  
    x < 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.  
     
  3.  
    A = np.random.randint(15,size=(4,3))
  4.  
    A
  5.  
    ----------------------
  6.  
    array([[ 8, 14, 1],
  7.  
    [ 8, 11, 4],
  8.  
    [ 9, 4, 1],
  9.  
    [13, 13, 11]])
  10.  
     
  11.  
    A.reshape(3,4)
  12.  
    -----------------
  13.  
    array([[ 8, 14, 1, 8],
  14.  
    [11, 4, 9, 4],
  15.  
    [ 1, 13, 13, 11]])
  16.  
     
  17.  
    A.reshape(-1)
  18.  
    -------------------
  19.  
    array([ 8, 14, 1, 8, 11, 4, 9, 4, 1, 13, 13, 11])
学新通

19、expand_dims

它用于扩展数组的维度。

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

20、squeeze

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

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

21、count_nonzero

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

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

22、argwhere

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

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

23、argmax & argmin

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

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

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

  1.  
    numpy.argmin(a, axis=None, out=None, *, keepdims=<no value>)
  2.  
     
  3.  
    np.argmin(min)
  4.  
    ------
  5.  
    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([1, 2, 3, 4, 5, 7])

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.  
    a = np.random.random(size=(3,4))
  2.  
    a
  3.  
    -----
  4.  
    array([[0.81695699, 0.42564822, 0.65951417, 0.2731807 ],
  5.  
    [0.7017702 , 0.12535894, 0.06747666, 0.55733467],
  6.  
    [0.91464488, 0.26259026, 0.88966237, 0.59253923]])
  7.  
     
  8.  
     
  9.  
    np.round(a,decimals=0)
  10.  
    ------------
  11.  
    array([[1., 0., 1., 1.],
  12.  
    [1., 1., 1., 1.],
  13.  
    [0., 1., 0., 1.]])
  14.  
     
  15.  
    np.round(a,decimals=1)
  16.  
    -------------
  17.  
    array([[0.8, 0. , 0.6, 0.6],
  18.  
    [0.5, 0.7, 0.7, 0.8],
  19.  
    [0.3, 0.9, 0.5, 0.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([0, 1, 0, 0, 5, 5, 5, 2, 3])
  5.  
     
  6.  
    arr.clip(0,3)
  7.  
    ------------------
  8.  
    array([0, 1, 0, 0, 3, 3, 3, 2, 3])
  9.  
     
  10.  
    arr.clip(3,5)
  11.  
    ------------------
  12.  
    array([3, 3, 3, 3, 5, 5, 5, 3, 3])

三、替换数组中的值

28、where

返回满足条件的数组元素。

numpy.where(condition, [x, y, ]/)

condition:匹配的条件。如果true则返回x,否则y。

  1.  
    a = np.arange(12).reshape(4,3)
  2.  
    a
  3.  
    -------
  4.  
    array([[ 0, 1, 2],
  5.  
    [ 3, 4, 5],
  6.  
    [ 6, 7, 8],
  7.  
    [ 9, 10, 11]])
  8.  
     
  9.  
    np.where(a>5) ## Get The Index
  10.  
    --------------------
  11.  
    (array([2, 2, 2, 3, 3, 3], dtype=int64),
  12.  
    array([0, 1, 2, 0, 1, 2], dtype=int64))
  13.  
     
  14.  
    a[np.where(a>5)] ## Get Values
  15.  
    --------------------------
  16.  
    array([ 6, 7, 8, 9, 10, 11])
学新通

它还可以用来替换pandas df中的元素。

np.where(data[feature].isnull(), 1, 0)

29、put

用给定的值替换数组中指定的元素。

numpy.put(a, ind, v)

a:数组
Ind:需要替换的索引
V:替换值

  1.  
    arr = np.array([1,2,3,4,5,6])
  2.  
    arr
  3.  
    --------
  4.  
    array([1, 2, 3, 4, 5, 6])
  5.  
     
  6.  
    np.put(arr,[1,2],[6,7])
  7.  
    arr
  8.  
    --------
  9.  
    array([1, 6, 7, 4, 5, 6])

30、copyto

将一个数组的内容复制到另一个数组中。

numpy.copyto(dst, src, casting='same_kind', where=True)

dst:目标
src:来源

  1.  
    arr1 = np.array([1,2,3])
  2.  
    arr2 = np.array([4,5,6])
  3.  
    print("Before arr1",arr1)
  4.  
    print("Before arr2",arr1)
  5.  
    np.copyto(arr1,arr2)
  6.  
    print("After arr1",arr1)
  7.  
    print("After arr2",arr2)
  8.  
    ---------------------------
  9.  
    Before arr1 [1 2 3]
  10.  
    Before arr2 [4 5 6]
  11.  
     
  12.  
    After arr1 [4 5 6]
  13.  
    After arr2 [4 5 6]

四、集合操作

31、查找公共元素

intersect1d函数以排序的方式返回两个数组中所有唯一的值。

numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)

Assume_unique:如果为真值,则假设输入数组都是唯一的。
Return_indices:如果为真,则返回公共元素的索引。

  1.  
    ar1 = np.array([1,2,3,4,5,6])
  2.  
    ar2 = np.array([3,4,5,8,9,1])
  3.  
    np.intersect1d(ar1,ar2)
  4.  
    ---------------
  5.  
    array([1, 3, 4, 5])
  6.  
     
  7.  
    np.intersect1d(ar1,ar2,return_indices=True)
  8.  
    ---------------
  9.  
    (array([1, 3, 4, 5]), ## Common Elements
  10.  
    array([0, 2, 3, 4], dtype=int64),
  11.  
    array([5, 0, 1, 2], dtype=int64))

32、查找不同元素

numpy.setdiff1d(ar1, ar2, assume_unique=False)

np.setdiff1d函数返回arr1中在arr2中不存在的所有唯一元素。

  1.  
    a = np.array([1, 7, 3, 2, 4, 1])
  2.  
    b = np.array([9, 2, 5, 6, 7, 8])
  3.  
    np.setdiff1d(a, b)
  4.  
    ---------------------
  5.  
    array([1, 3, 4])

33、从两个数组中提取唯一元素

numpy.setxor1d(ar1, ar2, assume_unique=False)

Setxor1d 将按顺序返回两个数组中所有唯一的值。

  1.  
    a = np.array([1, 2, 3, 4, 6])
  2.  
    b = np.array([1, 4, 9, 4, 36])
  3.  
    np.setxor1d(a,b)
  4.  
    --------------------
  5.  
    array([ 2, 3, 6, 9, 36])

34、合并

numpy.union1d(ar1, ar2)

Union1d函数将两个数组合并为一个。

  1.  
    a = np.array([1, 2, 3, 4, 5])
  2.  
    b = np.array([1, 3, 5, 4, 36])
  3.  
    np.union1d(a,b)
  4.  
    -------------------
  5.  
    array([ 1, 2, 3, 4, 5, 36])

五、数组分割

35、水平分割

numpy.hsplit(ary, indices_or_sections)

Hsplit函数将数据水平分割为n个相等的部分。

  1.  
    A = np.array([[3,4,5,2],[6,7,2,6]])
  2.  
    np.hsplit(A,2) ## splits the data into two equal parts
  3.  
    ---------------
  4.  
    [ array([[3, 4],[6, 7]]), array([[5, 2],[2, 6]]) ]
  5.  
     
  6.  
    np.hsplit(A,4) ## splits the data into four equal parts
  7.  
    -----------------
  8.  
    [ array([[3],[6]]), array([[4],[7]]),
  9.  
    array([[5],[2]]), array([[2],[6]]) ]

36、垂直分割

numpy.vsplit(ary, indices_or_sections)

Vsplit将数据垂直分割为n个相等的部分。

  1.  
    A = np.array([[3,4,5,2],[6,7,2,6]])
  2.  
    np.vsplit(A,2)
  3.  
    ----------------
  4.  
    [ array([[3, 4, 5, 2]]), array([[6, 7, 2, 6]]) ]

六、数组叠加

37、水平叠加

numpy.hstack(tup)

hstack 将在另一个数组的末尾追加一个数组。

  1.  
    a = np.array([1,2,3,4,5])
  2.  
    b = np.array([1,4,9,16,25])
  3.  
     
  4.  
    np.hstack((a,b))
  5.  
    ---------------------
  6.  
    array([ 1, 2, 3, 4, 5, 1, 4, 9, 16, 25])

38、垂直叠加

numpy.vstack(tup)

vstack将一个数组堆叠在另一个数组上。

  1.  
    np.vstack((a,b))
  2.  
    ----------------------
  3.  
    array([[ 1, 2, 3, 4, 5],
  4.  
    [ 1, 4, 9, 16, 25]])

七、数组比较

39、allclose

numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)

如果两个数组的形状相同,则Allclose函数根据公差值查找两个数组是否相等或近似相等。

  1.  
    a = np.array([0.25,0.4,0.6,0.32])
  2.  
    b = np.array([0.26,0.3,0.7,0.32])
  3.  
     
  4.  
    tolerance = 0.1 ## Total Difference
  5.  
    np.allclose(a,b,tolerance)
  6.  
    ---------
  7.  
    False
  8.  
     
  9.  
    tolerance = 0.5
  10.  
    np.allclose(a,b,tolerance)
  11.  
    ----------
  12.  
    True

40、equal

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

它比较两个数组的每个元素,如果元素匹配就返回True。

  1.  
    np.equal(arr1,arr2)
  2.  
    -------------
  3.  
    array([ True, True, True, False, True, True])

八、重复的数组元素

41、repeat

它用于重复数组中的元素n次。

numpy.repeat(a, repeats, axis=None)

A:重复的元素
Repeats:重复的次数。

  1.  
    np.repeat('2017',3)
  2.  
    ---------------------
  3.  
    array(['2017', '2017', '2017'], dtype='<U4')

我们来看一个更实际的示例,我们有一个包含按年数量销售的数据集。

  1.  
    fruits = pd.DataFrame([
  2.  
    ['Mango',40],
  3.  
    ['Apple',90],
  4.  
    ['Banana',130]
  5.  
    ],columns=['Product','ContainerSales'])
  6.  
    fruits

学新通

在数据集中,缺少年份列。我们尝试使用numpy添加它。

  1.  
    fruits['year'] = np.repeat(2020,fruits.shape[0])
  2.  
    fruits

学新通

42、tile

通过重复A,rep次来构造一个数组。

  1.  
    numpy.title(A, reps)
  2.  
     
  3.  
    np.tile("Ram",5)
  4.  
    -------
  5.  
    array(['Ram', 'Ram', 'Ram', 'Ram', 'Ram'], dtype='<U3')
  6.  
     
  7.  
    np.tile(3,(2,3))
  8.  
    -------
  9.  
    array([[3, 3, 3],
  10.  
    [3, 3, 3]])

九、爱因斯坦求和

43、einsum

  1.  
    umpy.einsum(subscripts, *operands, out=None,
  2.  
    dtype=None, order='K',
  3.  
    casting='safe', optimize=False)

此函数用于计算数组上的多维和线性代数运算。

  1.  
    a = np.arange(1,10).reshape(3,3)
  2.  
    b = np.arange(21,30).reshape(3,3)
  3.  
     
  4.  
    np.einsum('ii->i',a)
  5.  
    ------------
  6.  
    array([1, 5, 9])
  7.  
     
  8.  
    np.einsum('ji',a)
  9.  
    ------------
  10.  
    array([[1, 4, 7],
  11.  
    [2, 5, 8],
  12.  
    [3, 6, 9]])
  13.  
     
  14.  
    np.einsum('ij,jk',a,b)
  15.  
    ------------
  16.  
    array([[150, 156, 162],
  17.  
    [366, 381, 396],
  18.  
    [582, 606, 630]])
  19.  
     
  20.  
    p.einsum('ii',a)
  21.  
    ----------
  22.  
    15
学新通

十、统计分析

44、直方图

  1.  
    numpy.histogram(a, bins=10, range=None,
  2.  
    normed=None, weights=None, density=None)

这是Numpy的重要统计分析函数,可计算一组数据的直方图值。

  1.  
    A = np.array([[3, 4, 5, 2],
  2.  
    [6, 7, 2, 6]])
  3.  
    np.histogram(A)
  4.  
    -------------------
  5.  
    (array([2, 0, 1, 0, 1, 0, 1, 0, 2, 1], dtype=int64),
  6.  
    array([2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. ]))

45、百分位数

沿指定轴计算数据的Q-T-T百分位数。

  1.  
    numpy.percentile(a, q, axis=None, out=None,
  2.  
    overwrite_input=False, method='linear',
  3.  
    keepdims=False, *,
  4.  
    interpolation=None)[source]

a:输入。
q:要计算的百分位。
overwrite_input:如果为true,则允许输入数组修改中间计算以节省内存。

  1.  
    a = np.array([[2, 4, 6], [4, 8, 12]])
  2.  
     
  3.  
    np.percentile(a, 50)
  4.  
    -----------
  5.  
    5.0
  6.  
     
  7.  
    np.percentile(a, 10)
  8.  
    ------------
  9.  
    3.0
  10.  
     
  11.  
    arr = np.array([2,3,4,1,6,7])
  12.  
    np.percentile(a,5)
  13.  
    ------------
  14.  
    2.5

46、标准偏差

  1.  
    numpy.std(a, axis=None, dtype=None, out=None,
  2.  
    ddof=0, keepdims=<no value>, *,
  3.  
    where=<no value>)

std用于计算沿轴的标准偏差。

  1.  
    a = np.array([[2, 4, 6], [4, 8, 12]])
  2.  
    np.std(a,axis=1)
  3.  
    --------
  4.  
    array([1.63299316, 3.26598632])
  5.  
     
  6.  
    np.std(a,axis=0) ## Column Wise
  7.  
    --------
  8.  
    array([1., 2., 3.])

47、方差

  1.  
    numpy.var(a, axis=None, dtype=None, out=None,
  2.  
    ddof=0, keepdims=<no value>, *,
  3.  
    where=<no value>)

var用于计算沿轴的方差。

  1.  
    a = np.array([[2, 4, 6], [4, 8, 12]])
  2.  
    np.var(a,axis=1)
  3.  
    -------------------
  4.  
    array([ 2.66666667, 10.66666667])
  5.  
     
  6.  
    np.var(a,axis=0)
  7.  
    -------------------
  8.  
    array([1., 4., 9.])

十一、数组打印

48、显示带有两个十进制值的浮点数

  1.  
    numpy.set_printoptions(precision=None, threshold=None, edgeitems=None,
  2.  
    linewidth=None, suppress=None, nanstr=None, infstr=None,
  3.  
    formatter=None, sign=None, floatmode=None, *,
  4.  
    legacy=None)
  5.  
     
  6.  
    np.set_printoptions(precision=2)
  7.  
     
  8.  
    a = np.array([12.23456, 32.34535])
  9.  
    print(a)
  10.  
    ------------
  11.  
    array([12.23,32.34])

设置打印数组最大值

np.set_printoptions(threshold=np.inf)

增加一行中元素的数量

np.set_printoptions(linewidth=100) ## 默认是 75

十二、保存和加载数据

49、保存

  1.  
    numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ',
  2.  
    newline='\n', header='', footer='',
  3.  
    comments='# ', encoding=None)

savetxt用于在文本文件中保存数组的内容。

  1.  
    arr = np.linspace(10,100,500).reshape(25,20)
  2.  
    np.savetxt('array.txt',arr)

50、加载

  1.  
    numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None,
  2.  
    converters=None, skiprows=0, usecols=None, unpack=False,
  3.  
    ndmin=0, encoding='bytes', max_rows=None, *,
  4.  
    quotechar=None, like=None)

用于从文本文件加载数组,它以文件名作为参数。

np.loadtxt('array.txt')

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgccgkf
系列文章
更多 icon
同类精品
更多 icon
继续加载