Python数据分析之Numpy库的使用详解

 更新时间:2021年11月02日 16:52:37   作者:Paranoid☆  
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库

前言

由于自己并不以Python语言为主,这里只是简单介绍一下Numpy库的使用

提示:以下是本篇文章正文内容

🧡Numpy库介绍

numpy 库处理的最基础数据类型是由同种元素构成的多维数组(ndarray), 简称" 数组”,数组中所有元素的类型必须相同, 数组中元素可以用整数索引, 序号从0开始。 ndarray类型的维度(dimensions)叫做轴(axes), 轴的个数叫做秩(rank)。 一维数组的秩为1, 二维数组的秩为2, 二维数组 相当于由两个一维数组构成

numpy 库概述:
由于numpy 库中函数较多且命名容易与常用命名混淆,建议采用如下方式引用numpy 库:

import numpy as np

其中, as保留字与import一起使用能够改变后续代码中库的命名空间, 有助于提高代码可读性。 简单说, 在程序的后续部分中, np代替numpy。

💙ndarray 类常用属性

创建一个简单的数组后, 可以查看ndarray类型有一些基本属性

1.ndarray.ndim
数组轴的个数,在python的世界中,轴的个数被称作秩

2.ndarray.shape
数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性

3.ndarray.size
数组元素的总个数,等于shape属性中元组元素的乘积。

4.ndarray.dtype
一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。

5.ndarray.itemsize
数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).

6.ndarray.data
包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。

import numpy as np #引入numpy模块
a = np.ones((4,5))
print(a)
print('数据轴个数: ',a.ndim)
print('每个维度的数据个数: ',a.shape)
print('数据类型',a.dtype)

# 结果
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
数据轴个数:  2
每个维度的数据个数:  (4, 5)
数据类型 float64

小结:

在这里插入图片描述

💚Numpy常用函数

🍓array函数

函数原型:

np.array([x,y,x],dtype=int)  # 从列表和元组中创建数组

功能:array函数将列表转矩阵

import numpy as np #引入numpy模块
array=np.array([[1,2,3], #列表转矩阵
[4,5,6]])
print(array)
print('number of dim',array.ndim) #输出矩阵数据轴数
print('size',array.size) #输出矩阵总元素个数

# 结果
[[1 2 3]
[4 5 6]]
number of dim 2
size 6

🥝arange()函数和linspace()函数

函数原型:

np.arange(x,y,i)   # 创建一个由x到y,以i为步长的数组
np.linspace(x,y,n)  # 创建一个由x到y,等分为n个元素的数组
import numpy as np #引入numpy模块
a=np.arange(1,12,2)# np.arange从1到12,间隔为2
print(a)
#从2到12,生成随机6个数,并控制为2行3列
b=np.linspace(2,12,6).reshape(2,3)
print(b)

# 结果:
[ 1 3 5 7 9 11]
[[ 2. 4. 6.]
[ 8. 10. 12.]]

🍎zeros(),empty和ones()

功能:创建都是初始值相同元素(0,1)的数组
函数原型:

np.ones((m,n),dtype)  # 创建一个m行n列的全为1的数组
np.zeros((m,n),dtype)  # 创建一个m行n列的全为0的数组
np.empty((m,n),dtype)  # 创建一个m行n列的全为0的数组
import numpy as np #引入numpy模块
a=np.zeros((5,8)) #元素都是0
b=np.ones((5,6)) #元素都是1
print(a)
print(b)

# 结果:
[[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]]
[[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]]

🍒ndarray 类的索引和切片方法

和列表的索引差不多的

在这里插入图片描述

import numpy as np #引入numpy模块
a = np.random.rand(5,3)#生成随机5行3列数组
print(a)
print('获取第2行',a[2]) #获取第2行
print('切片',a[1:3]) #切片, 1到3行,不包括3
print('切片',a[-5:-2:2]) #切片,从后向前,步长为2

# 结果
[[0.53469047 0.47559129 0.65865181]
[0.89942399 0.66683114 0.55181635]
[0.11989817 0.06055933 0.56880058]
[0.95744499 0.94814163 0.2155053 ]
[0.95179242 0.61544664 0.40876683]]
获取第2行 [0.11989817 0.06055933 0.56880058]
切片 [[0.89942399 0.66683114 0.55181635]
[0.11989817 0.06055933 0.56880058]]
切片 [[0.53469047 0.47559129 0.65865181]
[0.11989817 0.06055933 0.56880058]]

🍇numpy 库运算函数

在这里插入图片描述

总结

提示:这里对文章进行总结:

numpy 库还包括三角运算函数、 傅里叶变换、 随机和概率分布、 基本数值统计、 位运算、 矩阵运算等非常丰富的功能, 在使用时可以到官方网站查询

在这里插入图片描述

python基础查表

在这里插入图片描述

到此这篇关于Python数据分析之Numpy库的使用详解的文章就介绍到这了,更多相关Python 数据分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python十类常见异常类型总结(附捕获及异常处理方式)

    Python十类常见异常类型总结(附捕获及异常处理方式)

    在编写程序时难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误等等,这篇文章主要给大家介绍了关于Python十类常见异常类型总结的相关资料,文中还附捕获及异常处理方式,需要的朋友可以参考下
    2023-06-06
  • 详解解决jupyter不能使用pytorch的问题

    详解解决jupyter不能使用pytorch的问题

    这篇文章主要介绍了详解解决jupyter不能使用pytorch的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python word文本自动化操作实现方法解析

    Python word文本自动化操作实现方法解析

    这篇文章主要介绍了Python word文本自动化操作实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 升级anaconda中python到3.10版本的简单步骤

    升级anaconda中python到3.10版本的简单步骤

    anaconda是一个非常好用的python发行版本,其中包含了大部分常用的库,下面这篇文章主要给大家介绍了关于升级anaconda中python到3.10版本的简单步骤,需要的朋友可以参考下
    2024-03-03
  • python3.6 print同一行覆盖打印方式

    python3.6 print同一行覆盖打印方式

    这篇文章主要介绍了python3.6 print同一行覆盖打印方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python实现视频自动打码的示例代码

    Python实现视频自动打码的示例代码

    我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢?本文就来为大家详细讲讲
    2022-04-04
  • python中class类与方法的用法实例详解

    python中class类与方法的用法实例详解

    类(class)是python中很重要的一个概念,也是我们面象对象编程中最重要的概念主之一,这篇文章主要给大家介绍了关于python中class类与方法用法的相关资料,需要的朋友可以参考下
    2022-04-04
  • python OpenCV计算图片相似度的5种算法

    python OpenCV计算图片相似度的5种算法

    本文主要介绍了python OpenCV计算图片相似度的5种算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python实现自动化的sql延时注入

    python实现自动化的sql延时注入

    这篇文章主要为大家详细介绍了如何基于python实现自动化的sql延时注入脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Django 中间键和上下文处理器的使用

    Django 中间键和上下文处理器的使用

    这篇文章主要介绍了Django 中间键和上下文处理器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03

最新评论