数据分析基础之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()函数用于创建数组,可以将列表、元组等序列类型转换为数组类型。代码如下:

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]]
  • 39
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python大作业数据分析通常会使用到numpy、matplotlib和爬虫技术。下面我详细介绍一下: 1. NumpyNumpyPython中常用的数值计算库,它提供了对多维数组对象的支持以及一系列科学计算函数。在数据分析中,我们可以使用numpy来进行数据处理、数据清洗、数据转换等操作。例如,我们可以使用numpy来进行数组运算、矩阵计算、向量化操作等,大大提高了运算效率和开发速度。 2. Matplotlib:Matplotlib是Python中广泛使用的数据可视化库,它可以用来绘制各种类型的图表,如折线图、柱状图、饼图、散点图等。在数据分析中,我们可以使用matplotlib来展示和探索数据的分布、关系和趋势,帮助我们更好地理解数据。例如,我们可以使用matplotlib来绘制销售趋势图,比较不同产品的销售情况等。 3. 爬虫:爬虫是一种自动化获取网页信息的技术,通过模拟浏览器行为并提取网页中的数据,可以获取大量的结构化数据。在数据分析中,我们可以使用爬虫技术来从各种数据源(如网页、API、数据库等)中获取数据,以便进行后续的分析和处理。例如,我们可以编写爬虫程序来爬取电商网站的商品信息,然后使用numpy和matplotlib对这些数据进行分析和可视化。 综上所述,Python大作业数据分析常使用numpy、matplotlib和爬虫技术,它们分别用于数据处理、数据可视化和数据获取方面,为我们提供了强大的分析工具和方法。 ### 回答2: Python大作业数据分析主要涉及到了三个重要的模块:NumPy,Matplotlib和爬虫。 首先是NumPy,它是一个强大的Python科学计算库。我们可以使用NumPy来处理和分析大量的数据。它提供了高效的数组运算和数值计算的功能,可以进行数据处理、转换、矩阵运算等。在数据分析中,可以利用NumPy来进行数据预处理、数据清洗、数据变换等操作。 其次是Matplotlib,这是一个用于创建各种类型图表和可视化的Python绘图库。我们可以使用Matplotlib来绘制图表、直方图、散点图、饼图等,以直观的方式展示数据分析结果。Matplotlib不仅可以用于静态图表的绘制,还可以创建动态图表和交互式图表,使得数据呈现更加生动。 最后是爬虫,也就是利用Python编写程序从网页上获取所需数据的技术。爬虫可以通过发送HTTP请求,解析HTML文档,提取所需数据并保存到本地或进一步处理。在数据分析中,我们可以使用爬虫来获取特定网站上的数据,例如股票价格,天气信息等,从而进行后续的数据分析和处理。 综上所述,Python大作业数据分析涉及到的关键技术主要是NumPy、Matplotlib和爬虫。通过利用这些技术,我们可以对大量数据进行处理、分析和可视化呈现,从而得出有意义的结论和结果。 ### 回答3: Python大作业数据分析主要涉及到numpy、matplotlib和爬虫技术。 首先,numpyPython科学计算的基础库,它提供了多维数组对象和一些用于处理数组的函数。在数据分析中,可以使用numpy进行数据的存储、处理和计算,如数据清洗、分析、转换等。通过numpy的数组对象,可以方便地进行向量化计算,加快数据处理的速度。 其次,matplotlib是一个可视化库,它能够将数据以图表的形式展示出来。在数据分析中,我们可以使用matplotlib绘制各种类型的图表,如柱状图、折线图、散点图等,以便更直观地展示数据的特征和趋势。通过调用matplotlib的API,可以自定义图表的外观和样式,使其更符合数据分析的需要。 最后,爬虫技术是通过模拟HTTP请求,从网页中提取数据的一种技术。在数据分析中,我们可以使用爬虫技术从互联网上获取所需的数据,如股票数据、天气数据、新闻数据等,以便进行后续的分析和处理。通过合理的选择爬虫库和编写爬虫脚本,可以高效地获取到所需的数据。 综上所述,Python大作业数据分析主要涉及到numpy、matplotlib和爬虫技术。通过numpy进行数据的处理和计算,使用matplotlib进行数据的可视化,以及利用爬虫技术获取所需的数据。通过综合运用这些技术,可以对数据进行深入的分析和挖掘,发现数据中的规律和趋势,为决策提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值