python数据分析基础003 -numpy的使用(详解)

文章目录

  • 前言
  • (一)numpy基础介绍
    • 1.什么是numpy
    • 2.为什么要学习numpy
    • ✨3.numpy的应用
    • 4.numpy的安装
    • 5.numpy库的导入
  • (二)numpy创建数组(矩阵)
    • 1.创建数组(array)
    • 2.数据类型(dtype)
    • 3.数据类型的操作
      • 3.1 定义数据类型
      • 3.2 调整数据类型
      • 3.3 保留n位小数
  • (三)数组的计算
    • 1.查看数组形状
      • 1.1 创建一维数组
      • 1.2 创建二维数组
      • 1.3 创建三维数组
    • 2. 修改数组形状
      • 2.1 将1维数组变为3维数组
      • 2.2 将3维数组变到1维数组
    • 3.数组的计算
      • 3.1 数组与数字的计算
        • 3.1.1 加法
        • 3.1.2 减法
        • 3.1.3 乘法
        • 3.1.4 除法
      • 3.2 数组与数组的计算
        • 3.2.1 广播原则
        • ⚽3.2.2 加法
        • 3.2.2 减法
        • 3.2.2 乘法
        • 3.2.2 除法
  • ⚒结语

作者简介: 苏凉(在python路上)
博客主页: 苏凉.py的博客
名言警句: 海阔凭鱼跃,天高任鸟飞。
要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
关注✨点赞收藏

前言

numpy通常可以和matplotlib一起使用。两者相结合可以更有效的帮助我们进行数据的分析。
接下来我们一起进入python的科学计算基础库numpy的学习吧。
前期回顾:matplotlib绘制数据可视化图形

(一)numpy基础介绍

python数据分析基础003 -numpy的使用(详解)_第1张图片

1.什么是numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

2.为什么要学习numpy

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

1.一个强大的N维数组对象 ndarray
2.广播功能函数
3.整合 C/C++/Fortran 代码的工具
4.线性代数、傅里叶变换、随机数生成等功能

✨3.numpy的应用

NumPy 通常与 SciPy(Scientific Python)Matplotlib(绘图库)一起使用, 这种组合广泛用于替代MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

4.numpy的安装

pip install numpy -i https://www.pypi.douban.com/simple

5.numpy库的导入

import numpy as np

(二)numpy创建数组(矩阵)

:Python 没有内置对数组的支持,但可以使用 Python 列表代替。

1.创建数组(array)

使用array的三种方法创建数组,返回的数组类名为numpy.ndarray类

a = np.array([5,6,7,8,9])                  
b = np.array(range(5,10))                  
c = np.arange(5,10)                        
print(a,type(a))                           
print(b,type(b))                           
print(c,type(c))                           
# 结果:[5 6 7 8 9]    

2.数据类型(dtype)

使用dtype方法可以返回数据类型

print(a.dtype,b.dtype,c.dtype)  
# 结果:int32 int32 int32          

附:numpy中常见的数据类型:
python数据分析基础003 -numpy的使用(详解)_第2张图片

3.数据类型的操作

3.1 定义数据类型

使用dtype参数指定数据类型

x1 = np.array(range(5,10),dtype = 'float')
print(x1,x1.dtype)              
# 结果: [5. 6. 7. 8. 9.] float64    

bool类型返回true和false

x2 = np.array([0,1,1,0,1,0,1],dtype=bool)                      
print(x2,x2.dtype)                                             
# 结果:[False  True  True False  True False  True] bool          

3.2 调整数据类型

调整数据类型用到astype方法,可以将原数据类型调整到我们想要的数据类型

x3 = np.array(range(5,10),dtype = 'int8')    
x4 = x3.astype('int32')                      
print(x3.dtype,x4.dtype)                     
# 结果:int8 int32                              

3.3 保留n位小数

在numpy中保留n位小数用到的是round方法

例:保留3位随机小数

x5 = random.random()        
x6 = np.round(x5,3)         
print(x6)                   
# 结果:0.313                  
                            

(三)数组的计算

数组分为一维数组,二维数组和多维数组。接下来就让我们一起看看在numpy中如何对数组进行操作的吧!!

1.查看数组形状

shape()方法查看数组形状可以判断出这是几维数组

1.1 创建一维数组

a = np.array(range(13))
print(a,a.shape)

结果:
在这里插入图片描述

1.2 创建二维数组

a1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a1)
print(a1.shape)

结果:
python数据分析基础003 -numpy的使用(详解)_第3张图片

1.3 创建三维数组

a2 = np.array([[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]])
print(a2)
print(a2.shape)

结果:
python数据分析基础003 -numpy的使用(详解)_第4张图片

可以看出shape方法返回的值中有多少个该数组就是几维数组。

2. 修改数组形状

在numpy中用reshape()方法修改数组的形状可以将n维数组修改到m维数组。

2.1 将1维数组变为3维数组

a3= np.array(range(24))
print(a3.shape) #原a3为1维数组
a4 = a3.reshape(2,3,4)
print(a4)
print(a4.shape)

结果:
python数据分析基础003 -numpy的使用(详解)_第5张图片

2.2 将3维数组变到1维数组

a5 = a4.reshape(24,)
print(a5)
print(a5.shape)

结果:
在这里插入图片描述

在numpy中将多维数组变到1维数组还有一种方法,那就是flatten()方法,这种方法适用于我们不知道有多少个数组元素时使用。

a5 = a4.flatten()
print(a5)
print(a5.shape)

结果和上面相同。

3.数组的计算

3.1 数组与数字的计算

3.1.1 加法

数组内的每个元素都加上这个数。

import numpy as np

a = np.array(range(24))
b = a.reshape(4,6)
print(b)
print(b+1)

结果:
python数据分析基础003 -numpy的使用(详解)_第6张图片

3.1.2 减法

数组内的每个元素都减去这个数。

import numpy as np

a = np.array(range(24))
b = a.reshape(4,6)
print(b)
print(b-1)

结果:
python数据分析基础003 -numpy的使用(详解)_第7张图片

3.1.3 乘法

数组内的每个元素都乘以这个数。

import numpy as np

a = np.array(range(24))
b = a.reshape(4,6)
print(b)
print(b*2)

结果:
python数据分析基础003 -numpy的使用(详解)_第8张图片

3.1.4 除法

数组内的每个元素都除以这个数。

import numpy as np

a = np.array(range(24))
b = a.reshape(4,6)
print(b)
print(b/2)

结果:
python数据分析基础003 -numpy的使用(详解)_第9张图片
特殊情况:当数组的元素除以0时,0/0返回的值时nan,而非0元素/0时返回的值为inf。
python数据分析基础003 -numpy的使用(详解)_第10张图片

3.2 数组与数组的计算

前提:两数组的元素应该相同(当多维与一维计算时,应保证一维数组与多维数组的行或列相同)

3.2.1 广播原则

如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符或其中一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。
通俗的来说就是当两数组的shape的值从末尾开始,若两数组的值相同或其中有一个的值为1,则这两个数组可以进行计算(加减乘除)。

⚽3.2.2 加法

俩数组内的每个元素对应相加。

import numpy as np

a = np.array(range(24))
a1 = np.array(range(40,64))
b = a.reshape(4,6)
b1 =a1.reshape(4,6)
print(b)
print(b1)
print(b+b1)

结果:
python数据分析基础003 -numpy的使用(详解)_第11张图片

3.2.2 减法

俩数组内的每个元素对应相减。

import numpy as np

a = np.array(range(24))
a1 = np.array(range(40,64))
b = a.reshape(4,6)
b1 =a1.reshape(4,6)
print(b)
print(b1)
print(b1-b)

结果:
python数据分析基础003 -numpy的使用(详解)_第12张图片

3.2.2 乘法

俩数组内的每个元素对应相乘。

import numpy as np

a = np.array(range(24))
a1 = np.array(range(40,64))
b = a.reshape(4,6)
b1 =a1.reshape(4,6)
print(b)
print(b1)
print(b1*b)

结果:
python数据分析基础003 -numpy的使用(详解)_第13张图片

3.2.2 除法

俩数组内的每个元素对应相除。

import numpy as np

a = np.array(range(24))
a1 = np.array(range(40,64))
b = a.reshape(4,6)
b1 =a1.reshape(4,6)
print(b)
print(b1)
print(b1/b)

结果:
python数据分析基础003 -numpy的使用(详解)_第14张图片

总结:数组的计算可根据数学中矩阵运算法则来理解

⚒结语

好啦,今天的内容就是这样,希望看到这篇文章的小伙伴们能有所收获。最后,如果你觉得这篇文章可以的话,三连支持一下吧,我是苏凉,咱们下期再见!!
python数据分析基础003 -numpy的使用(详解)_第15张图片

你可能感兴趣的:(python,numpy,数据分析)