Python进阶:可视化学习Numpy

本文通过可视化的方式介绍了Numpy的基础概念,包括创建数组、矩阵,进行数组和矩阵运算,以及索引、聚合等操作。强调了Numpy在数据分析和科学计算中的重要性,并提供了丰富的示例来帮助理解。
摘要由CSDN通过智能技术生成

简介

通过可视化的方式来学习与理解Numpy中的简单概念。

文中图片出自A Visual Intro to NumPy and Data Representation

什么是Numpy?

Numpy是Python中用于数据分析、机器学习与科学计算的知名第三方库,它是Python中很多科学计算库的依赖包,如sickit-learn、SciPy、Pandas等

创建数组

Numpy中创建数组使用 np.array(list) 则可,本质其实就是将 list 转换成了 Numpy中定义的 numpy.ndarray类型,从而方便高效的进行各种矩阵运算。

In [1]: import numpy as np

In [2]: a = np.array([1,2,3])

In [3]: print(a) #数组的值
[1 2 3]

In [4]: a.dtype # 每个元素的类型
Out[4]: dtype('int64')

In [5]: a.shape #形状, 三行零列。
Out[5]: (3,)

In [6]: a.size #array的大小,其实就是array中所有元素的个数
Out[6]: 3

从代码中可以看出,我们创建了一个名为a的数组,它的形状为(3,),即三行零列,整体大小为3,形象如下图:

在这里插入图片描述
在通过list创建array时,如果没有指定dtype(数组元素类型), 那么就会以list中元素的类型而自动定义成对应的默认类型,如果list中全为整型,则dtype默认为int64,如果list中存在浮点型,则dtype默认为float64,当然这是可以修改的,如下:

In [7]: np.array([1,2,3]).dtype
Out[7]: dtype('int64') # list中全为整型,则dtype默认为int64

In [8]: np.array([1.0,2,3]).dtype
Out[8]: dtype('float64') # list中存在浮点型,则dtype默认为float64

In [9]: np.array([1,2,3], dtype=np.float32).dtype
Out[9]: dtype('float32') # dtype可以修改

实际使用Numpy时,通常会直接通过Numpy生成数组的初始值,而不是我们通过list去生成,Numpy为此提供了ones()、zeros()、random.random()等方法。

In [10]: n1 = np.ones(3)

In [11]: print(n1)
[1. 1. 1.]

In [12]: n1.dtype
Out[12]: dtype('float64')

In [13]: n2 = np.zeros(3)

In [14]: print(n2)
[0. 0. 0.]

In [15]: n3 = np.random.random(3)

In [16]: print(n3)
[0.95151279 0.79374927 0.52983953]

从代码可以看出,ones()方法会将数组元素全初始化为1.,zeros()与random.random()方法也都类似,需注意,这3个方法生成的数组类型都为float64,形象如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0N3BIq1j-1582164696562)(https://raw.githubusercontent.com/ayuLiao/images/master/20190821103023.png)]

数组运算

创建两个数组,将他们相加,获得一个新的数组。

In [20]: data = np.array([1,2])

In [21]: ones = np.ones(2)

In [22]: data + ones
Out[22]: array([2., 3.])

可以发现,我们不用使用for迭代的方式去运算数组结构,直接通过+操作符就完事了,抽象做的非常好,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wuunH5Gk-1582164696563)(https://raw.githubusercontent.com/ayuLiao/images/master/20190821104941.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWgzul0q-1582164696564)(https://raw.githubusercontent.com/ayuLiao/images/master/20190821104951.png)]

与加法类似,减法、乘法、除法如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2Smkruk-1582164696565)(https://raw.githubusercontent.com/ayuLiao/images/master/20190821105103.png)]

加减乘除法除了数组之间可以使用,数组与单纯的数字也可以计算

In [23]: data
Out[23]: array([1, 2])

In [24]: data + 1
Out[24]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒编程-二两

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值