数据分析基础之Numpy库

  • Post author:
  • Post category:其他


一、Numpy库是什么?

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

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

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

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


  1. 数据预处理

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


  2. 数据分析

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


  3. 机器学习

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


  4. 数据可视化

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

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

数据类型 描述 用途和范围
bool 存储True或False的布尔类型 常用于逻辑运算和条件判断
int8 8位整数类型 范围为-128到127,可用于节省内存的情况下存储整数
int16 16位整数类型 范围为-32768到32767,可用于存储较小的整数
int32 32位整数类型 范围为-2147483648到2147483647,常用于存储普通整数
int64 64位整数类型 范围为-9223372036854775808到9223372036854775807,可用于存储较大的整数
uint8 8位无符号整数类型 范围为0到255,可用于存储正整数
uint16 16位无符号整数类型 范围为0到65535,可用于存储较小的正整数
uint32 32位无符号整数类型 范围为0到4294967295,常用于存储正整数
uint64 64位无符号整数类型 范围为0到18446744073709551615,可用于存储较大的正整数
float16 16位浮点类型 可用于存储小数,但精度较低,通常用于深度学习中
float32 32位浮点类型 范围为-3.4028235e+38到3.4028235e+38,常用于存储单精度浮点数
float64 64位浮点类型 范围为-1.7976931348623157e+308到1.7976931348623157e+308,常用于存储双精度浮点数
complex64 64位复数类型 可用于存储实部和虚部都是32位浮点数的复数
complex128 128位复数类型 可用于存储实部和虚部都是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()函数用于创建数组,可以将列表、元组等序列类型转换为数组类型。代码如下:

import numpy as np

# 将列表转换为数组
list1 = [1, 2, 3, 4, 5]
arr1 = np.array(list1)
print(arr1)
# 输出结果:[1 2 3 4 5]

# 将元组转换为数组
tuple1 = (1, 2, 3, 4, 5)
arr2 = np.array(tuple1)
print(arr2)
# 输出结果:[1 2 3 4 5]

2.np.zeros()

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

import numpy as np

# 创建形状为(3, 3)的全0数组
arr1 = np.zeros((3, 3))
print(arr1)
# 输出结果:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]

# 创建形状为(3, 3)、数据类型为int的全0数组
arr2 = np.zeros((3, 3), dtype=int)
print(arr2)
# 输出结果:
# [[0 0 0]
#  [0 0 0]
#  [0 0 0]]

3.np.ones()

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

import numpy as np

# 创建形状为(3, 3)的全1数组
arr1 = np.ones((3, 3))
print(arr1)
# 输出结果:
# [[1. 1. 1.]
#  [1. 1. 1.]
#  [1. 1. 1.]]

# 创建形状为(3, 3)、数据类型为int的全1数组
arr2 = np.ones((3, 3), dtype=int)
print(arr2)
# 输出结果:
# [[1 1 1]
#  [1 1 1]
#  [1 1 1]]

4.np.arange()

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

import numpy as np

# 创建起始值为2,终止值为10,步长为2的等差数组
arr1 = np.arange(2, 10, 2)
print(arr1)
# 输出结果:[2 4 6 8]

# 创建起始值为0,终止值为1,步长为0.1的等差数组
arr2 = np.arange(0, 1, 0.1)
print(arr2)
# 输出结果:
# [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

5.np.linspace()

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

import numpy as np

# 创建起始值为0,终止值为1,数组长度为5的等间隔数组
arr1 = np.linspace(0, 1, 5)
print(arr1)
# 输出结果:[0.   0.25 0.5  0.75 1.  ]

# 创建起始值为1,终止值为10,数组长度为4的等间隔数组
arr2 = np.linspace(1, 10, 4)
print(arr2)
# 输出结果:[ 1.  4.  7. 10.]

6.np.random.rand()

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

import numpy as np

# 创建形状为(3, 3)的随机数组
arr1 = np.random.rand(3, 3)
print(arr1)
# 输出结果:
# [[0.74963322 0.86837363 0.17152166]
#  [0.86789836 0.7087327  0.34988989]
#  [0.4049485  0.07653613 0.30098195]]

# 创建形状为(2, 4)的随机数组
arr2 = np.random.rand(2, 4)
print(arr2)
# 输出结果:
# [[0.04946719 0.66196339 0.94638457 0.03839422]
#  [0.66424495 0.54005153 0.59813005 0.14882098]]

7.np.reshape()

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

import numpy as np

# 创建形状为(6,)的数组
arr1 = np.array([1, 2, 3, 4, 5, 6])
print(arr1.shape)
# 输出结果:(6,)

# 将形状为(6,)的数组重塑为形状为(2, 3)的数组
arr2 = np.reshape(arr1, (2, 3))
print(arr2)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 将形状为(2, 3)的数组重塑为形状为(6,)的数组
arr3 = np.reshape(arr2, (6,))
print(arr3)
# 输出结果:[1 2 3 4 5 6]

8.np.transpose()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 将形状为(2, 3)的数组转置为形状为(3, 2)的数组
arr2 = np.transpose(arr1)
print(arr2)
# 输出结果:
# [[1 4]
#  [2 5]
#  [3 6]]

9.np.dot()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 创建形状为(3, 2)的数组
arr2 = np.array([[2, 3], [4, 5], [6, 7]])
print(arr2)
# 输出结果:
# [[2 3]
#  [4 5]
#  [6 7]]

# 计算两个数组的矩阵乘积
arr3 = np.dot(arr1, arr2)
print(arr3)
# 输出结果:
# [[28 34]
#  [64 79]]

10.np.sum()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 计算所有元素的和
sum1 = np.sum(arr1)
print(sum1)
# 输出结果:21

# 沿着第0轴计算元素的和
sum2 = np.sum(arr1, axis=0)
print(sum2)
# 输出结果:[5 7 9]

# 沿着第1轴计算元素的和
sum3 = np.sum(arr1, axis=1)
print(sum3)
# 输出结果:[ 6 15]

11.np.mean()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 计算所有元素的平均值
mean1 = np.mean(arr1)
print(mean1)
# 输出结果:3.5

# 沿着第0轴计算元素的平均值
mean2 = np.mean(arr1, axis=0)
print(mean2)
# 输出结果:[2.5 3.5 4.5]

# 沿着第1轴计算元素的平均值
mean3 = np.mean(arr1, axis=1)
print(mean3)
# 输出结果:[2. 5.]

12.np.std()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 计算所有元素的标准差
std1 = np.std(arr1)
print(std1)
# 输出结果:1.707825127659933

# 沿着第0轴计算元素的标准差
std2 = np.std(arr1, axis=0)
print(std2)
# 输出结果:[1.5 1.5 1.5]

# 沿着第1轴计算元素的标准差
std3 = np.std(arr1, axis=1)
print(std3)
# 输出结果:[0.81649658 0.81649658]

13.np.min()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 计算所有元素的最小值
min1 = np.min(arr1)
print(min1)
# 输出结果:1

# 沿着第0轴计算元素的最小值
min2 = np.min(arr1, axis=0)
print(min2)
# 输出结果:[1 2 3]

# 沿着第1轴计算元素的最小值
min3 = np.min(arr1, axis=1)
print(min3)
# 输出结果:[1 4]

14.np.max()

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

import numpy as np

# 创建形状为(2, 3)的数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

# 计算所有元素的最大值
max1 = np.max(arr1)
print(max1)
# 输出结果:6

# 沿着第0轴计算元素的最大值
max2 = np.max(arr1, axis=0)
print(max2)
# 输出结果:[4 5 6]

# 沿着第1轴计算元素的最大值
max3 = np.max(arr1, axis=1)
print(max3)
# 输出结果:[3 6]

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

1.numpy.array()

创建一个numpy数组。

参数:



  • object:数组对象



  • dtype:数据类型,默认为float



  • copy:复制数组,默认为False



  • order:创建数组时使用的存储顺序,默认为C

示例:

import numpy as np

arr1 = np.array([1, 2, 3])
print(arr1)  # [1 2 3]

arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
# [[1 2 3]
#  [4 5 6]]

2.numpy.arange()

返回一个等差数列数组。

参数:



  • start:起始值,默认为0



  • stop:结束值(不包含),必须指定



  • step:步长,默认为1



  • dtype:数据类型,默认为float

示例:

import numpy as np

arr = np.arange(0, 10, 2)
print(arr)  # [0 2 4 6 8]

3.numpy.linspace()

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

参数:



  • start:起始值



  • stop:结束值



  • num:元素个数



  • endpoint:是否包含结束值,默认为True



  • retstep:是否返回步长,默认为False



  • dtype:数据类型,默认为float

示例:

import numpy as np

arr = np.linspace(0, 1, 5)
print(arr)  # [0.   0.25 0.5  0.75 1.  ]

4.numpy.zeros()

返回一个全0的数组。

参数:



  • shape:数组形状



  • dtype:数据类型,默认为float

示例:

import numpy as np

arr = np.zeros((2, 3))
print(arr)
# [[0. 0. 0.]
#  [0. 0. 0.]]

5.numpy.ones()

返回一个全1的数组。

参数:



  • shape:数组形状



  • dtype:数据类型,默认为float

示例:

import numpy as np

arr = np.ones((2, 3))
print(arr)
# [[1. 1. 1.]
#  [1. 1. 1.]]

6.numpy.eye()

返回一个单位矩阵数组。

参数:



  • N:矩阵维度



  • dtype:数据类型,默认为float

示例:

import numpy as np

arr = np.eye(3)
print(arr)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

7.numpy.random.rand()

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

参数:



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

示例:

import numpy as np

arr = np.random.rand(2, 3)
print(arr)
# [[0.21353148 0.51849556 0.80461099]
#  [0.7113511  0.87802903 0.23464142]]

8.numpy.max()

返回数组中的最大值。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.max(arr))  # 6
print(np.max(arr, axis=0))  # [4 5 6]

9.numpy.min()

返回数组中的最小值。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.min(arr))  # 1
print(np.min(arr, axis=0))  # [1 2 3]

10.numpy.mean()

返回数组的平均值。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

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

11.numpy.median()

返回数组的中位数。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

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

12.numpy.var()

返回数组的方差。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.var(arr))  # 2.9166666666666665
print(np.var(arr, axis=0))  # [2.25 2.25 2.25]

13.numpy.std()

返回数组的标准差。

参数:



  • axis:计算轴,默认为None

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.std(arr))  # 1.707825127659933
print(np.std(arr, axis=0))  # [1.5 1.5 1.5]

14.numpy.transpose()

返回数组的转置。

参数:



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

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.transpose(arr))
# [[1 4]
#  [2 5]
#  [3 6]]

15.numpy.reshape()

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

参数:



  • newshape:新的形状

示例:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.reshape(arr, (3, 2)))
# [[1 2]
#  [3 4]
#  [5 6]]

16.numpy.hstack()

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

参数:



  • tup:要堆叠的数组序列

示例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(np.hstack((arr1, arr2)))  # [1 2 3 4 5 6]

17.numpy.vstack()

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

参数:



  • tup:要堆叠的数组序列

示例:

import numpy as np

arr1 = np.array([[1], [2], [3]])
arr2 = np.array([[4], [5], [6]])
print(np.vstack((arr1, arr2)))
# [[1]
#  [2]
#  [3]
#  [4]
#  [5]
#  [6]]

18.numpy.dot()

返回两个数组的点积。

参数:



  • a:数组1



  • b:数组2

示例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(np.dot(arr1, arr2))  # 32

19.numpy.matmul()

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

参数:



  • a:数组1



  • b:数组2

示例:

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
print(np.matmul(arr1, arr2))
# [[19 22]
#  [43 50]]



版权声明:本文为qq_64997449原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。