目录如下:
1.1.3 zeros(),ones(),eye(),diag()函数用法
1. Numpy 用法
1.1 创建数组
1.1.1 array()函数用法
array():用于将Python对象(list/tuple)转换为数组。
调用numpy中array函数,将队列转化为数组。
将列表[list]做乘法后得到的是嵌套列表,嵌套列表做数组转换后得到的是多维数组
对数组进行切片,但是改变切片值后,不想影响原来的数组,则需要对切片进行复制
1.1.2 empty()函数用法
empty函数用于分配指定大小的数组,未初始化,随机填充值.
注意empty内的参数为一个元组 tuple()!很容易理解,因为shape的返回值就是元组形式。
1.1.3 zeros(),ones(),eye(),diag()函数用法
有了上一条中empty的基础,再理解ones和zeros很容易。
zeros和ones建立的数组类型都是float64型
eye()用于建立单位对称矩阵,diag用于建立主线已经确认数值的对称矩阵
1.2 数组的基本属性
ndim:维度
shape:各维度大小(元组)
size:元素个数
dtype:数据类型
使用arr.astype()函数可以改变原数组的类型
原先的arr5是int型,通过astype可以将其更改为float型
其中的一个最常用的应用!
把字符型数据转换为float型数据
1.3 数组的形状
1.3.1 reshape 的用法
reshape的用法和matlab类似,注意reshape的元素是元组形式传入。
注意reshape是引用原来的数组,原来的数组发生改变时,reshape后的数组也会发生改变。
此外,reshape还有一个强大之处,只要把其中一个维度固定即可,另一个维度可以用-1来表示。
1.3.2 ravel扁平化的用法
ravel 可以扁平化数组
1.3.3 flatten扁平化的用法
flatten的用法和ravel类似,代码如下:
ravel和flatten的用法差别:
1.4 数组运算
1.4.1 数组和数组直接相乘
数组和数组相乘就是对应位置的数据相乘
1.4.2 数组和标量的相乘
数组和标量进行运算是对数组的每一个元素都做运算。
1.4.3 数组的广播
如果两个数组的维数不同,则元素到元素是操作是不可能的,但是。
在Numpy中仍然可以对形状不相似的数组进行操作,因为他拥有广播功能。
list1和list2虽然维数不同,,但是维数低的可以自动扩充为维数高的数组并且和高纬度数组进行相加.
1.4.3 数组的索引和切片
1.4.3.1 一维数组的索引和切片
跟列表的重要区别在于数组切片是原始数组的视图。这意味着数组不会被复制,视图上的任何修改都会直接反映到原数组上。
通过以上结果可以看出:
1. 列表的切片元素进行修改后,不会改变原数组的值;
2. 数组的切片元素进行修改后,会改变原数组的值。
数组切片[:]的用法,可以快速对切片元素进行访问
1.4.3.2 二维数组的索引和切片
高维数组的索引不再是标量,而是一个一维数组.
对某一列或者行的访问和matlab的用法相似。
1.4.3.2 二维数组的索引和切片
Bool 型数组的用法。
1) 通过建立一个字符串数组arr,然后通过str == 'str'的方式可以建立一个booll型数组;
2) 建立的一个bool型数组可以用于选择对应的数据数组的对应行或者列
3) 注意bool型数组里面的元素是True和False,而不是字符’True‘和’False’
1.2 数组的转置和轴对换
使用arr.T和arr.tranpose做数组的转置。
求矩阵的内积,np.dot
1.2 利用函数进行计算
这里主要选用几个简单的函数进行数据处理:
1.3 数组的统计值计算
下属参数均可以带有一个叫做aixs的参数,其中axis=0时表示列,axis=1时表示行
- sum:表示求和
- mean:算术平均值,零长度数组的平均值为NaN
- std,var:分别为标准差和方差,自由度可调(默认为N)
- min,max:最大值和最小值
- argmin,argmax:分别为最大和最小的元素索引
- cumsum:所有元素的累计和
- sumprod:所欲元素的累计积
1.4 数组的排序
通过np.sort函数对数组进行排序,具体的语法如下:
import numpy as np中 sort(a, axis=-1, kind='quicksort', order=None)
函数的返回值:返回的是一个经过复制排序后的对维数组(对原数组没有影响)
参数1:a——代表任意一个多维数组
参数2:axis——就是维度的选择——0表示列,1表示行,None表示按照一维数组进行排序
参数3:排序的方式
参数4:order,分别建立数组的dtype和value后,可以按照关键字对元组或队列进行排序
多维数组进行排序例子1:
多维数组进行排序例子2:
argsort可以给出排序的索引
1.5 伪随机数的生成
- seed:确定随机数生成器的种子
- permutation: 返回一个序列的随机排列或返回一个随机排列的范围
- shuffle: 对一个序列就地随机排序
- rand : 产生均匀分布的样本值
- randint: 产生从给定的上下范围内随机选取整数
- randn : 产生正态分布(平均值为0,标准差为1)的样本值
- binomial : 产生二项分布的样本值
- normal: 产生正态分布的样本值
- uniform: 产生[0,1)均匀分布的随机数
1.6 其他
列表:
1) 中括号括起来数据,然后内部用逗号隔开;
2) 列表中元素可以是不同类型;
3) 列表乘以2表示,重复2次该列表。
数组:
1)中括号括起来数据,内部没有符号隔开;
2)数组中元素为同一类型。shape:表示各维度大小的元组,注意元组就是用小括号括起来,且里面的值不能被修改;
dtype:用于说明数组数据类型的对象。