学习周记 数据科学与计算1

一、NumPy介绍

NumPy是一个开源的Python科学计算库,能够直接对数组和矩阵进行操作,可以省略很多循环语句,众多的数学函数也会让编写代码的工作轻松许多。

二、Numpy的安装

 Numpy的安装

1.pip install numpy

2.conda install numpy(清华源:https://pypi.tuna.tsinghua.edu.cn/simple)

Numpy的导入:

import numpy as np

三、Ndarray对象

Ndarray: N维数组

它是一系列同类型数据的集合,以0下标为开始进行集合中元素的索引。用于存放同类型元素的多维数组。

 

 四、创建Ndarray数组对象

1、array()函数:

作用:创建Ndarray数组对象

2、empty()函数:

作用:创建一个指定形状(shape)、数据类型(dtype )且末初始化的数组

3、zeros()函数: 

作用:创建指定大小的数组,数组元素以0来填充。

 

 4、ones()函数:

作用:创建指定元素的数组,数组元素以来填充。

5、 full()函数:

作用:创建指定形状的数组,数组元素以fill-value来填充。

 6、eye()函数:

作用:对角线为1其他的位置为0

7、arange()函数:

作用:创建数值范围并返回ndarray对象,根据start与stop指定的范围以及step设定的步长,生成一个ndarray。

 8、frombuffer()函数:

作用:用于实现动态数组,接受buffer输入参数,以流的形式读入转化成ndarray对象。

 9、linspace()函数:

 作用:创建一个一维数组,数组是一个等差数列构成的。

 10、logspace()函数:

作用:创建一个等比数列。

11、random.rand()函数: 

作用:生成[0,1)之间的随机数。

 

 12、random.random()函数:

作用:生成[0,1)之间的随机数。

 注意:不能传两个参数,只能创建一维数组

 

 13、random.randint()函数:

作用:生成随机数。

 14、random.randn()函数:

作用:返回一个或一组样本,具有标准正态分布。

标准正态分布:又称u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)

15、random.normal()函数:

生成高斯分布的概率密度随机数。

练习:

#1、生成一个3*3的对角矩阵
import numpy as np
arr = np.eye(3,dtype='i4')
print(arr)
#2、创建一个长度为10的数组,值为0~1之间,不包含首位
import numpy as np
Z = np.linspace(0,1,11,endpoint=False)[1:]
print(Z)
#3、创建一个长度为10的0数组,第5个值为1
import numpy as np
Z = np.zeros(10)
Z[4] = 1
print(Z)

五、numpy数组与python中列表的对比

 

六、Ndarray数组属性 

1、ndim:秩,即轴的数量或维度的数量。

 

2、shape:数组的维度,对于矩阵,nm列。

 

3、size:数组元素的总个数,相当于.shapen*m的值。

4、dtypendarray对象的元素类型。

 

 练习:创建一个2*3的二维数组。并分别输出它的维度、行数和列数、元素个数。

#创建一个2*3的二维数组。并分别输出它的维度、行数和列数、元素个数
import numpy as np# 创建二维数组
nd_two = np.array([[1, 2, 3], [4, 5, 6]])
print(nd_two)
print('nd_two.shape =', nd_two.shape)
print(nd_two.size)

七、切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与Python中list的切片操作

ndarray数组可以基于0- n的下标进行索引,切片对象可以通过内置的slice函数,并设置start, stop及step参数进行,从原数组中切割出一个新数组。

 

 

 

 

切片可以包括省略号“...”,来使选择度与数组维度相同。

 

 练习:1.给定一个6*7*8的三维矩阵,求100个元素的索引是什么?

2.如何交换二维数组中的两列?

 

#给定一个6*7*8的三维矩阵,求100个元素的索引是什么?
import numpy as np
print(np.unravel_index(99,(6,7,8)))

 

# 如何交换二维数组中的两列?
import numpy as np
arry = np.random.randint(1,10,size=(2,3))
print(arry)
print(arry[:,::-1])

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值