Python基础之Numpy的基本用法详解

 更新时间:2021年05月06日 09:44:35   作者:孤旅青山迷情人  
这篇文章主要介绍了Python基础之Numpy的基本用法详解,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下

一、数据生成

1.1 手写数组

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) # 一维数组
b = np.array([[1, 2], [3, 4]]) #二维数组

1.2 序列数组

numpy.arange(start, stop, step, dtype),start默认0,step默认1

c = np.arange(0, 10, 1, dtype=int)  # =np.arange(10)  [0 1 2 3 4 5 6 7 8 9]
d = np.array([np.arange(1, 3), np.arange(4, 6)])  # 二维数组
# 不过为了避免麻烦,通常序列二维数组都是通过reshape进行重新组织
dd = c.reshape(2, 5)  # 将一维数组重新组合成2行5列

1.3 随机数组

numpy.random.random(size=None) 该方法返回[0.0, 1.0)范围的随机小数。
numpy.random.randint() 该方法返回[low, high)范围的随机整数。
该方法有三个参数low、high、size 三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)
numpy.random.randn(d0,d1,…,dn) 该方法返回一个或一组样本,具有正态分布
np.random.normal 指定期望和方差的正太分布

e = np.random.random(size=2)  # 一维数组,元素两个,[0.0,1.0]的随机数
f = np.random.random(size=(2, 3))  # 两行三列数组,[0.0,1.0]的随机数

h = np.random.randint(10, size=3)  # [0,10]范围内的一行三列随机整数
i = np.random.randint(5, 10, size=(2, 3))  # [5,10]范围内的2行3列随机整数

1.4 其他方式数组

numpy.zeros 创建指定大小的数组,数组元素以0 来填充
numpy.ones 创建指定形状的数组,数组元素以1 来填充
numpy.empty 创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组,里面的元素的值是之前内存的值
np.linspace 创建一个一维数组,数组是一个等差数列构成的
numpy.logspace 创建一个于等比数

j = np.zeros((2, 5))
k = np.ones((2, 5))
l = np.linspace(1, 20, 10)

二、数组属性查看

ndarray.ndim
darray.shape 数组的维度和列,对于矩阵,n 行m 列
ndarray.size 数组元素的总个数,相当于.shape 中n*m 的值
ndarray.dtype ndarray 对象的元素类型
ndarray.itemsize ndarray 对象中每个元素的大小,以字节为单位
ndarray.flags ndarray 对象的内存信息
ndarray.real ndarray 元素的实部
ndarray.imag ndarray 元素的虚部
ndarray.data 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。

print('ndim:数组的秩(维度)'.center(20, '*'))
print('ndim:', i.shape[1])

三、数组索引

x = np.arange(1, 13) # 一维数组
a = x.reshape(4, 3) # 二维数组
print(‘x:', x)
print(‘a:', a)

3.1 一维数组的索引

print(x[2:])
print(x[3:8])

3.2 二维数组的索引

print(a[0])  # 第一行
print(a[2, 2])  # 第三行第4列
print(a[:, 2])
print(a[::2, 0])  # 所有奇数行第1列数据
print(a[(2, 1), (1, 2)])  # 第3行第2列,第2行第3列   = np.array((a[2,1],a[1,2]))取出来后在重新生成新的数组
print(a[-2])  # 获取倒数第二行
print(a[::-1])  # 行倒序
print(a[::-1, ::-1])  # 行列倒序

四、数组的方法

4.1 改变数组维度

reshape将一维数组变成二维或者三维
ravel将三维数组变成一维数组,flatten将二维数组变成一维数组

4.2 数组拼接

使用numpy.hstack(a1,a2) 函数将两个数组水平组合
numpy.vstack(a1,a2) 函数可以将两个或多个数组垂直组合起来形成一个数组
使用numpy.concatenate((a1, a2, …), axis),控制axis参数的值也可以实现hstack和vstack的功能,axis=0等同于vstack、axis=1等同于hstack

4.3 数组分隔

b = np.split(x, 4)  # 将一个一维数组四等分, 用b[1]的方式获取每个块的数据
# print(b[1])
c = np.split(a, 2, axis=0)  # 二维数组的垂直分隔,按行分隔成两部分
# print(c[0])
d = np.split(a, [2], axis=1)  # 二维数组的水平分隔,按列分隔成两部分
# print(d[0])

4.4 算术运算

加减乘除: add(),subtract(),multiply() 和divide()
np.sum() 求和
np.prod() 所有元素相乘
np.mean() 平均值
np.std() 标准差
np.var() 方差
np.median() 中数
np.power() 幂运算
np.sqrt() 开方
np.min() 最小值
np.max() 最大值
np.argmin() 最小值的下标
np.argmax() 最大值的下标
np.inf 无穷大
np.exp(10) 以e 为底的指数
np.log(10) 对数

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

相关文章

  • Python中最好用的json库orjson用法详解

    Python中最好用的json库orjson用法详解

    orjson是一个用于python的快速、正确的json库,它的基准是 json最快的python库,具有全面的单元、集成和互操作性测试,下面这篇文章主要给大家介绍了关于Python中最好用的json库orjson用法的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python快速实现简易贪吃蛇小游戏的示例代码

    Python快速实现简易贪吃蛇小游戏的示例代码

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。本文将利用Python语言快速实现简易贪吃蛇小游戏,感兴趣的可以尝试一下
    2022-10-10
  • 浅谈pandas中对nan空值的判断和陷阱

    浅谈pandas中对nan空值的判断和陷阱

    这篇文章主要介绍了浅谈pandas中对nan空值的判断和陷阱,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 解决anaconda安装pytorch报错找不到包的问题

    解决anaconda安装pytorch报错找不到包的问题

    这篇文章主要介绍了解决anaconda安装pytorch报错找不到包的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Pytorch对Himmelblau函数的优化详解

    Pytorch对Himmelblau函数的优化详解

    今天小编就为大家分享一篇Pytorch对Himmelblau函数的优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 使用Matlab将矩阵保存到csv和txt文件

    使用Matlab将矩阵保存到csv和txt文件

    这篇文章主要介绍了使用Matlab将矩阵保存到csv和txt文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • pyecharts绘制仪表盘的实现

    pyecharts绘制仪表盘的实现

    有时候大家想把自己绘制好的可视化图片集中到一个页面,整合成仪表盘,集中给同事或者他人来呈现,但又不知道该怎么做,今天小编就来分享一个pyecharts绘制仪表盘的实现,具有一定的参考价值,感兴趣的可以了解一下
    2021-06-06
  • 关于生产消费者模型中task_done()的具体作用

    关于生产消费者模型中task_done()的具体作用

    这篇文章主要介绍了关于生产消费者模型中task_done()的具体作用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 深入浅析Python 命令行模块 Click

    深入浅析Python 命令行模块 Click

    这篇文章主要介绍了Python 命令行模块 Click的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python笔记之观察者模式

    Python笔记之观察者模式

    这篇文章主要为大家详细介绍了Python笔记之观察者模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论