当前位置:   article > 正文

数据分析基础之Numpy库_numpy库有什么用

numpy库有什么用

一、Numpy库是什么?

        NumPy是Python中一个重要的数据处理库,它提供了高效的数组操作和数值计算功能。在数据分析中,NumPy库的重要性不言而喻,因为数据分析通常需要处理大量的数据,并进行各种复杂的数学运算。

        NumPy库提供了一种称为数组的数据结构,它可以容纳多维数组,并且支持各种数学运算。数组操作是数据分析中的基础,因为它可以快速地对大量数据进行操作,例如筛选、排序、聚合等等。NumPy库还提供了各种数学函数,例如求和、均值、标准差等等,这些函数可以帮助我们更好地理解和分析数据。

二、Numpy库在数据分析中有那些用途?

在数据分析中,NumPy库的应用非常广泛,以下是一些常见的用途:

  1. 数据预处理:在进行数据分析之前,通常需要对数据进行预处理,例如去除缺失值、标准化数据等等。NumPy库提供了各种函数,可以帮助我们进行数据预处理。

  2. 数据分析:在数据分析过程中,通常需要进行各种数学运算和统计分析,例如求和、均值、标准差、相关系数等等。NumPy库提供了各种数学函数,可以帮助我们进行数据分析。

  3. 机器学习:机器学习是数据分析的重要应用之一,它需要大量的数学计算和矩阵运算。NumPy库提供了各种矩阵计算函数,可以帮助我们进行机器学习算法的实现。

  4. 数据可视化:数据可视化是数据分析的重要环节之一,它可以帮助我们更好地理解和展示数据。NumPy库可以与Matplotlib库一起使用,帮助我们进行数据可视化。

三、Numpy常用的数据类型有哪些?

数据类型描述用途和范围
bool存储True或False的布尔类型常用于逻辑运算和条件判断
int88位整数类型范围为-128到127,可用于节省内存的情况下存储整数
int1616位整数类型范围为-32768到32767,可用于存储较小的整数
int3232位整数类型范围为-2147483648到2147483647,常用于存储普通整数
int6464位整数类型范围为-9223372036854775808到9223372036854775807,可用于存储较大的整数
uint88位无符号整数类型范围为0到255,可用于存储正整数
uint1616位无符号整数类型范围为0到65535,可用于存储较小的正整数
uint3232位无符号整数类型范围为0到4294967295,常用于存储正整数
uint6464位无符号整数类型范围为0到18446744073709551615,可用于存储较大的正整数
float1616位浮点类型可用于存储小数,但精度较低,通常用于深度学习中
float3232位浮点类型范围为-3.4028235e+38到3.4028235e+38,常用于存储单精度浮点数
float6464位浮点类型范围为-1.7976931348623157e+308到1.7976931348623157e+308,常用于存储双精度浮点数
complex6464位复数类型可用于存储实部和虚部都是32位浮点数的复数
complex128128位复数类型可用于存储实部和虚部都是64位浮点数的复数
string_可变长度字符串类型可用于存储字符串
datetime64日期和时间类型可用于存储日期和时间
timedelta64时间差类型

可用于计算时间差

        除了上述数据类型之外,NumPy还提供了一些其他的数据类型,例如void类型、object类型等等。这些数据类型通常用于特定的场景,例如void类型可用于存储不同类型的数据,object类型可用于存储Python对象。在使用这些数据类型时,需要注意其特殊的用途和范围。

四、Numpy常用的函数及用法有哪些?

1.常用函数

  1. np.array():创建数组
  2. np.zeros():创建全0数组
  3. np.ones():创建全1数组
  4. np.arange():创建等差数组
  5. np.linspace():创建等间隔数组
  6. np.random.rand():创建随机数组
  7. np.reshape():改变数组形状
  8. np.transpose():数组转置
  9. np.dot():矩阵乘法
  10. np.sum():计算数组元素的和
  11. np.mean():计算数组元素的平均值
  12. np.std():计算数组元素的标准差
  13. np.min():计算数组元素的最小值
  14. np.max():计算数组元素的最大值

2.函数使用示例

1.np.array()

np.array()函数用于创建数组,可以将列表、元组等序列类型转换为数组类型。代码如下:

  1. import numpy as np
  2. # 将列表转换为数组
  3. list1 = [1, 2, 3, 4, 5]
  4. arr1 = np.array(list1)
  5. print(arr1)
  6. # 输出结果:[1 2 3 4 5]
  7. # 将元组转换为数组
  8. tuple1 = (1, 2, 3, 4, 5)
  9. arr2 = np.array(tuple1)
  10. print(arr2)
  11. # 输出结果:[1 2 3 4 5]
'
运行

2.np.zeros()

np.zeros()函数用于创建全0数组,可以指定数组的形状和数据类型。代码如下:

  1. import numpy as np
  2. # 创建形状为(3, 3)的全0数组
  3. arr1 = np.zeros((3, 3))
  4. print(arr1)
  5. # 输出结果:
  6. # [[0. 0. 0.]
  7. # [0. 0. 0.]
  8. # [0. 0. 0.]]
  9. # 创建形状为(3, 3)、数据类型为int的全0数组
  10. arr2 = np.zeros((3, 3), dtype=int)
  11. print(arr2)
  12. # 输出结果:
  13. # [[0 0 0]
  14. # [0 0 0]
  15. # [0 0 0]]
'
运行

3.np.ones()

np.ones()函数用于创建全1数组,可以指定数组的形状和数据类型。代码如下:

  1. import numpy as np
  2. # 创建形状为(3, 3)的全1数组
  3. arr1 = np.ones((3, 3))
  4. print(arr1)
  5. # 输出结果:
  6. # [[1. 1. 1.]
  7. # [1. 1. 1.]
  8. # [1. 1. 1.]]
  9. # 创建形状为(3, 3)、数据类型为int的全1数组
  10. arr2 = np.ones((3, 3), dtype=int)
  11. print(arr2)
  12. # 输出结果:
  13. # [[1 1 1]
  14. # [1 1 1]
  15. # [1 1 1]]
'
运行

4.np.arange()

np.arange()函数用于创建等差数组,可以指定起始值、终止值和步长。代码如下:

  1. import numpy as np
  2. # 创建起始值为2,终止值为10,步长为2的等差数组
  3. arr1 = np.arange(2, 10, 2)
  4. print(arr1)
  5. # 输出结果:[2 4 6 8]
  6. # 创建起始值为0,终止值为1,步长为0.1的等差数组
  7. arr2 = np.arange(0, 1, 0.1)
  8. print(arr2)
  9. # 输出结果:
  10. # [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
'
运行

5.np.linspace()

np.linspace()函数用于创建等间隔数组,可以指定起始值、终止值和数组长度。代码如下:

  1. import numpy as np
  2. # 创建起始值为0,终止值为1,数组长度为5的等间隔数组
  3. arr1 = np.linspace(0, 1, 5)
  4. print(arr1)
  5. # 输出结果:[0. 0.25 0.5 0.75 1. ]
  6. # 创建起始值为1,终止值为10,数组长度为4的等间隔数组
  7. arr2 = np.linspace(1, 10, 4)
  8. print(arr2)
  9. # 输出结果:[ 1. 4. 7. 10.]
'
运行

6.np.random.rand()

np.random.rand()函数用于创建随机数组,数组元素为0到1之间的随机数。可以指定数组的形状。代码如下:

  1. import numpy as np
  2. # 创建形状为(3, 3)的随机数组
  3. arr1 = np.random.rand(3, 3)
  4. print(arr1)
  5. # 输出结果:
  6. # [[0.74963322 0.86837363 0.17152166]
  7. # [0.86789836 0.7087327 0.34988989]
  8. # [0.4049485 0.07653613 0.30098195]]
  9. # 创建形状为(2, 4)的随机数组
  10. arr2 = np.random.rand(2, 4)
  11. print(arr2)
  12. # 输出结果:
  13. # [[0.04946719 0.66196339 0.94638457 0.03839422]
  14. # [0.66424495 0.54005153 0.59813005 0.14882098]]
'
运行

7.np.reshape()

np.reshape()函数用于改变数组形状,可以将一个数组重塑为另一个形状的数组。代码如下:

  1. import numpy as np
  2. # 创建形状为(6,)的数组
  3. arr1 = np.array([1, 2, 3, 4, 5, 6])
  4. print(arr1.shape)
  5. # 输出结果:(6,)
  6. # 将形状为(6,)的数组重塑为形状为(2, 3)的数组
  7. arr2 = np.reshape(arr1, (2, 3))
  8. print(arr2)
  9. # 输出结果:
  10. # [[1 2 3]
  11. # [4 5 6]]
  12. # 将形状为(2, 3)的数组重塑为形状为(6,)的数组
  13. arr3 = np.reshape(arr2, (6,))
  14. print(arr3)
  15. # 输出结果:[1 2 3 4 5 6]
'
运行

8.np.transpose()

np.transpose()函数用于数组转置,可以将数组的行和列互换。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 将形状为(2, 3)的数组转置为形状为(3, 2)的数组
  9. arr2 = np.transpose(arr1)
  10. print(arr2)
  11. # 输出结果:
  12. # [[1 4]
  13. # [2 5]
  14. # [3 6]]
'
运行

9.np.dot()

np.dot()函数用于矩阵乘法,可以计算两个数组的矩阵乘积。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 创建形状为(3, 2)的数组
  9. arr2 = np.array([[2, 3], [4, 5], [6, 7]])
  10. print(arr2)
  11. # 输出结果:
  12. # [[2 3]
  13. # [4 5]
  14. # [6 7]]
  15. # 计算两个数组的矩阵乘积
  16. arr3 = np.dot(arr1, arr2)
  17. print(arr3)
  18. # 输出结果:
  19. # [[28 34]
  20. # [64 79]]
'
运行

10.np.sum()

np.sum()函数用于计算数组元素的和,可以指定计算的轴。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 计算所有元素的和
  9. sum1 = np.sum(arr1)
  10. print(sum1)
  11. # 输出结果:21
  12. # 沿着第0轴计算元素的和
  13. sum2 = np.sum(arr1, axis=0)
  14. print(sum2)
  15. # 输出结果:[5 7 9]
  16. # 沿着第1轴计算元素的和
  17. sum3 = np.sum(arr1, axis=1)
  18. print(sum3)
  19. # 输出结果:[ 6 15]
'
运行

11.np.mean()

np.mean()函数用于计算数组元素的平均值,可以指定计算的轴。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 计算所有元素的平均值
  9. mean1 = np.mean(arr1)
  10. print(mean1)
  11. # 输出结果:3.5
  12. # 沿着第0轴计算元素的平均值
  13. mean2 = np.mean(arr1, axis=0)
  14. print(mean2)
  15. # 输出结果:[2.5 3.5 4.5]
  16. # 沿着第1轴计算元素的平均值
  17. mean3 = np.mean(arr1, axis=1)
  18. print(mean3)
  19. # 输出结果:[2. 5.]
'
运行

12.np.std()

np.std()函数用于计算数组元素的标准差,可以指定计算的轴。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 计算所有元素的标准差
  9. std1 = np.std(arr1)
  10. print(std1)
  11. # 输出结果:1.707825127659933
  12. # 沿着第0轴计算元素的标准差
  13. std2 = np.std(arr1, axis=0)
  14. print(std2)
  15. # 输出结果:[1.5 1.5 1.5]
  16. # 沿着第1轴计算元素的标准差
  17. std3 = np.std(arr1, axis=1)
  18. print(std3)
  19. # 输出结果:[0.81649658 0.81649658]
'
运行

13.np.min()

np.min()函数用于计算数组元素的最小值,可以指定计算的轴。代码如下:

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 计算所有元素的最小值
  9. min1 = np.min(arr1)
  10. print(min1)
  11. # 输出结果:1
  12. # 沿着第0轴计算元素的最小值
  13. min2 = np.min(arr1, axis=0)
  14. print(min2)
  15. # 输出结果:[1 2 3]
  16. # 沿着第1轴计算元素的最小值
  17. min3 = np.min(arr1, axis=1)
  18. print(min3)
  19. # 输出结果:[1 4]
'
运行

14.np.max()

np.max()函数用于计算数组元素的最大值,可以指定计算的轴。代码如下

  1. import numpy as np
  2. # 创建形状为(2, 3)的数组
  3. arr1 = np.array([[1, 2, 3], [4, 5, 6]])
  4. print(arr1)
  5. # 输出结果:
  6. # [[1 2 3]
  7. # [4 5 6]]
  8. # 计算所有元素的最大值
  9. max1 = np.max(arr1)
  10. print(max1)
  11. # 输出结果:6
  12. # 沿着第0轴计算元素的最大值
  13. max2 = np.max(arr1, axis=0)
  14. print(max2)
  15. # 输出结果:[4 5 6]
  16. # 沿着第1轴计算元素的最大值
  17. max3 = np.max(arr1, axis=1)
  18. print(max3)
  19. # 输出结果:[3 6]
'
运行

五、常用函数参数详解,及使用示例 

1.numpy.array()

创建一个numpy数组。

参数:

  • object:数组对象
  • dtype:数据类型,默认为float
  • copy:复制数组,默认为False
  • order:创建数组时使用的存储顺序,默认为C

示例:

  1. import numpy as np
  2. arr1 = np.array([1, 2, 3])
  3. print(arr1) # [1 2 3]
  4. arr2 = np.array([[1, 2, 3], [4, 5, 6]])
  5. print(arr2)
  6. # [[1 2 3]
  7. # [4 5 6]]
'
运行

2.numpy.arange()

返回一个等差数列数组。

参数:

  • start:起始值,默认为0
  • stop:结束值(不包含),必须指定
  • step:步长,默认为1
  • dtype:数据类型,默认为float

示例:

  1. import numpy as np
  2. arr = np.arange(0, 10, 2)
  3. print(arr) # [0 2 4 6 8]
'
运行

3.numpy.linspace()

返回一个等间隔数列数组。

参数:

  • start:起始值
  • stop:结束值
  • num:元素个数
  • endpoint:是否包含结束值,默认为True
  • retstep:是否返回步长,默认为False
  • dtype:数据类型,默认为float

示例:

  1. import numpy as np
  2. arr = np.linspace(0, 1, 5)
  3. print(arr) # [0. 0.25 0.5 0.75 1. ]
'
运行

4.numpy.zeros()

返回一个全0的数组。

参数:

  • shape:数组形状
  • dtype:数据类型,默认为float

示例:

  1. import numpy as np
  2. arr = np.zeros((2, 3))
  3. print(arr)
  4. # [[0. 0. 0.]
  5. # [0. 0. 0.]]
'
运行

5.numpy.ones()

返回一个全1的数组。

参数:

  • shape:数组形状
  • dtype:数据类型,默认为float

示例:

  1. import numpy as np
  2. arr = np.ones((2, 3))
  3. print(arr)
  4. # [[1. 1. 1.]
  5. # [1. 1. 1.]]
'
运行

6.numpy.eye()

返回一个单位矩阵数组。

参数:

  • N:矩阵维度
  • dtype:数据类型,默认为float

示例:

  1. import numpy as np
  2. arr = np.eye(3)
  3. print(arr)
  4. # [[1. 0. 0.]
  5. # [0. 1. 0.]
  6. # [0. 0. 1.]]

7.numpy.random.rand()

返回一个指定形状的随机数数组,数值范围为0~1。

参数:

  • d0, d1, …, dn:数组形状

示例:

  1. import numpy as np
  2. arr = np.random.rand(2, 3)
  3. print(arr)
  4. # [[0.21353148 0.51849556 0.80461099]
  5. # [0.7113511 0.87802903 0.23464142]]
'
运行

8.numpy.max()

返回数组中的最大值。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.max(arr)) # 6
  4. print(np.max(arr, axis=0)) # [4 5 6]
'
运行

9.numpy.min()

返回数组中的最小值。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.min(arr)) # 1
  4. print(np.min(arr, axis=0)) # [1 2 3]
'
运行

10.numpy.mean()

返回数组的平均值。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.mean(arr)) # 3.5
  4. print(np.mean(arr, axis=0)) # [2.5 3.5 4.5]
'
运行

11.numpy.median()

返回数组的中位数。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.median(arr)) # 3.5
  4. print(np.median(arr, axis=0)) # [2.5 3.5 4.5]
'
运行

12.numpy.var()

返回数组的方差。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.var(arr)) # 2.9166666666666665
  4. print(np.var(arr, axis=0)) # [2.25 2.25 2.25]
'
运行

13.numpy.std()

返回数组的标准差。

参数:

  • axis:计算轴,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.std(arr)) # 1.707825127659933
  4. print(np.std(arr, axis=0)) # [1.5 1.5 1.5]
'
运行

14.numpy.transpose()

返回数组的转置。

参数:

  • axes:轴交换顺序,默认为None

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.transpose(arr))
  4. # [[1 4]
  5. # [2 5]
  6. # [3 6]]
'
运行

15.numpy.reshape()

返回一个新的数组,改变数组形状。

参数:

  • newshape:新的形状

示例:

  1. import numpy as np
  2. arr = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(np.reshape(arr, (3, 2)))
  4. # [[1 2]
  5. # [3 4]
  6. # [5 6]]
'
运行

16.numpy.hstack()

返回一个水平方向堆叠的数组。

参数:

  • tup:要堆叠的数组序列

示例:

  1. import numpy as np
  2. arr1 = np.array([1, 2, 3])
  3. arr2 = np.array([4, 5, 6])
  4. print(np.hstack((arr1, arr2))) # [1 2 3 4 5 6]
'
运行

17.numpy.vstack()

返回一个垂直方向堆叠的数组。

参数:

  • tup:要堆叠的数组序列

示例:

  1. import numpy as np
  2. arr1 = np.array([[1], [2], [3]])
  3. arr2 = np.array([[4], [5], [6]])
  4. print(np.vstack((arr1, arr2)))
  5. # [[1]
  6. # [2]
  7. # [3]
  8. # [4]
  9. # [5]
  10. # [6]]
'
运行

18.numpy.dot()

返回两个数组的点积。

参数:

  • a:数组1
  • b:数组2

示例:

  1. import numpy as np
  2. arr1 = np.array([1, 2, 3])
  3. arr2 = np.array([4, 5, 6])
  4. print(np.dot(arr1, arr2)) # 32
'
运行

19.numpy.matmul()

返回两个数组的矩阵乘积。

参数:

  • a:数组1
  • b:数组2

示例:

  1. import numpy as np
  2. arr1 = np.array([[1, 2], [3, 4]])
  3. arr2 = np.array([[5, 6], [7, 8]])
  4. print(np.matmul(arr1, arr2))
  5. # [[19 22]
  6. # [43 50]]
'
运行
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号