# Python 数据分析三剑客 numpy / pandas / matplotlib (numpy篇①)

写在前面

本来想直接入坑 matplotlib 的,但是因为看了看网友们说的基本都是入门 pandas 和 numpy 开始,还是循序渐进吧,急不得急不得…

正餐开始

本部分采用的编译环境是 jupyter notebook ,之前虽然有简单使用过(还能回想起当时初入门都花了好长时间)不管怎么说,现在再和着视频学习吧~老师和同学们都要寻求转型呢

之前一直忽略了 Edit 这个部分(也无怪,之前都是自己一个人摸索呜呜呜 ),甚至删掉 Cell 都是用小剪刀(那可真是黑历史了(擦汗)
在这里插入图片描述
选中绿色部分是对代码进行编译,选中蓝色部分即可对 Cell 进行操作(比如按两下DD即可删除,按一下C对 Cell 内容进行复制等操作)
在这里插入图片描述
若要快速运行代码:
shift+enter 键同时按 即可快速运行该 Cell 内代码并将光标定位到下一行
ctrl+enter 键同时按 即可快速运行该 Cell 内代码,光标不进行移动

对比 pycharm 里面的 Ctrl+Shift+f10

标题、Markdown、Cell 的区别
在这里插入图片描述

Numpy

产生数组

import numpy as np

一般不推荐使用 import numpy* 因为部分函数可能有冲突,害怕报错

接下来的操作都是默认导入了 numpy 包的

从列表产生数组
l = [1,2,3,4,5]
a = np.array(l)
a
从列表传入
np.array([1,2,3,4,5])
生成全为0的数组
np.zeros(5)
生成全为1的数组
np.ones(5)

注意:上述出来的结果均默认为浮点数,若想将其转化为整数类型,则需:

np.ones(5,dtype = "int")

在这里插入图片描述

可以使用 fill 方法将数组设定为指定值
a = np.array([1,2,3,4,5])
a.fill(5)
a

在这里插入图片描述
即可利用 fill() 方法将内容进行替换。但是如果是小数的话,会依据 a 的默认值,所得结果依然为整数:
在这里插入图片描述
想要正确进行 fill() 操作需要先对格式进行定义:

a = a.astype("float")
a.fill(2.5)
a

在这里插入图片描述
且一定记得要用个参数对 a.astype() 的内容进行接收

  • 与列表不同,数组中要求所有元素的 dtype 是一样的,如果传入参数的类型与数组类型不一样,需要按照已有的类型进行转换。
还可以使用一些特定的方法生成特殊的数组
生成整数序列:
a = np.arange(1,10)
a

左闭右开的一个区间,所以生成的答案为 1—9

同时可以设置步长:

a = np.arange(1,10,2)
a

采用 arange() 方法,左闭右开的一个区间,所以生成的答案为 1,3,5,7,9

生成等差数列:
a = np.linspace(1,20,20)
a

采用 linspace() 方法,生成一个左右闭合的区间,里面生成20个数字

a = np.linspace(1,20,41)
a

在这里插入图片描述

生成随机数
  • 生成随机数
a = np.random.rand(10)
a

array([0.08325194, 0.87338858, 0.35452514, 0.01557608, 0.24605199,0.88970188, 0.31528014, 0.99042108, 0.54581469, 0.52036265])

  • 生成随机整数
    需要规定前后及生成个数
a = np.random.randint(1,10,10)
a

array([2, 3, 8, 3, 7, 3, 3, 8, 7, 4])

  • 生成二项分布随机数
a = np.random.randn(10)
a

array([ 0.64359913, 0.34418811, -1.02005962, 1.0522183 , -0.57950052, -0.08133944, 0.07244462, 0.66275307, 0.08665061, 0.52686807])

数组属性

查看类型:

如果是查看数组的类型(当然这个没啥好看的,数组的类型就是数组类型…)

a = np.array([1,2,3,4,5])
type(a)

numpy.ndarray

查看数组中的数据类型∶

我们主要想查看的是 array 里面的内容是什么,采用的是 dtype() 方式

a.dtype

dtype(‘int32’)

查看形状,会返回一个元组,每个元素代表这一维的元素数目∶
a.shape

(5,)

查看数组里面元素的数目∶
a.size

5

查看数组的维度:
a.ndim

1 | 备注:维度的英文为 Dimensionality

索引与切片

索引第一个元素
a = np.array([1,2,3,4,5])
a[0]
修改第一个元素的值
a[0] = 10

在这里插入图片描述

切片,支持负索引:
a[1:3]
a[1:-2]	#等价于上式
a[-4:3]	#等价于上式

在这里插入图片描述

省略参数
a[::2]	#从开头取到结尾,间隔为2
a[2:]	#从2取到结尾
a[:-1]	#从开头取到倒数第二个元素

在这里插入图片描述

numy现实作用:假设我们记录一部电影的累计票房,可以这样计算每天的票房:
ob = np.array([12000,123123,234344,423233,453325])
ob2 = ob[1:]-ob[:-1]
ob2

在这里插入图片描述

多维数组及其属性

array还可以用来生成多维数组
a = np.array([[1,2,3,4],[5,6,7,8]])

在这里插入图片描述

查看形状
a.shape

(2, 4) 代表是一个2行4列的数组

查看总的元素个数
a.size
查看维数
a.ndim

多维数组索引

对于二维数组,可以传入两个数字来索引:

a = array([[1, 2, 3, 4] , [5, 6, 7, 8]])

a[1,3]

8

其中,1是行索引,3是列索引,中间用逗号隔开,事实上,Python会将它们看成一个元组(1,3),然后按照顺序进行对应。

可以利用索引给它赋值:
a[1,3] = -3

a = array([[ 1, 2, 3, 4] , [ 5, 6, 7, -3]])

事实上,我们还可以使用单个索引来索引一整行内容:
a[1]

array([ 5, 6, 7, -3])

Python会将这单个元组当成对第一维的索引,然后返回对应的内容。
a[:,2]

array([3, 7])

多维数组切片

多维数组,也支持切片操作,想得到第一行的第4和第5两个元素:
a[0,3:5]

在这里插入图片描述

得到最后两行的最后两列:
a[4:,4:]
得到第三列:
a[:,2]
每一维都支持切片的规则,包括负索引,省略:

例如,取出3,5行的奇数列

a[2::2,::2]

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人生苦短我愛Python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值