目录
Numby是一个用于矩阵化运算、科学计算的python组件,想要使用的话,首先我们要来下载这个包
换源
在pycharm默认的下载源是国外的,为了下载速度着想,可以换成国内的软件源
我们需要在windows的用户目录下创建一个pip的文件夹,里面创建一个pip.ini的文件
文件内容如下
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
然后就可以在命令行使用安装命令了
然后顺便安装一下 jupyter notebook (方便我们观察每次运行结果,非常好用)
基本数据结构nadarray
使用numpy可以创建一个矩阵,他们的数据类型都是ndarray
import numpy as np
np0=np.array([1,2,3,])
np1=np.array([[1,3,4],[1,2,3]])
print(np0)
print(type(np0))
print(np1)
print(type(np1))
通常使用Numpy还是在jupyter中,终端输入: jupyter notebook
他会进入网页中,现在对应的就是我们项目下的内容,不用担心找不到写好的代码在哪里
点击右上角,创建一个新的目录notebook存储我们写的代码,勾上左边的方框就可以重命名了
新建python3文件开始写代码
numpy常用函数
min(): 返回最小值
max(): 返回最大值
ndim(): 返回中位数
mean(): 返回平均值
std() :标准差
var() :方差
类型转换
一个矩阵都是字符串的话,不能使用max方法,只有数值类型才可以
现在我考虑把里面的内容都换成int类型,使用astype(“”),这个转换并不是直接作用在原来的矩阵上的,所以我把这个内容赋给原来的矩阵,才可以被使用
索引和切片
传入一个索引就是对应哪一行的数据
那如果我想要精确到哪一行哪一列,就需要传入两个索引
切片
切片的使用还是和列表类似,需要传入起始位置,结束位置,步长(不写默认为1)
可以单独取行的切片,也可以组合行列切片
格式: [行的切片,列的切片]
[行的起始位置:行的结束位置:步长,列的起始位置:列的结束位置:步长]
如果想单独获得列的切片可以使用下面的方法
左边单独写一个:,右边选择单独写一行,或者多行
想要取出划线的数字,怎么做到
这题就是考察了设置步长
取出下面的内容,现在步长明显不相等了,所以我们直接传入对应的列数
行数:从第3行开始一直取到最后
列数:我们用一个列表传入我们需要取出的列数
坐标
由一个题目引入,我想取出画的斜方向的数字,这该怎么做?
如果按照上面的切片法能不能取出呢?明显不能,矩阵行列切片取出来的是一个矩形的空间,这个斜的部分很明显需要用新的方法解决,我们引入坐标解决这样的问题,一个是0轴一个是1轴(他们都是从0开始的),将两边的坐标分开接收,先传0轴的,再传1轴的
布尔值索引
通过添加条件判断数组中每个值的真/假转为布尔值再对原数组进行索 引,为真 True时会被抽取出来
比如现在我想要获得矩阵中的奇数
现在可以直接用这个矩阵除以2==1,求得一个布尔数组,将这个布尔数组再次带入矩阵就可以得到满足我们条件的结果
矩阵运算
对位相加
2个矩阵的行数和列数都相同的情况下,可以实现相同位置上的数加减乘除
矩阵相乘:要求的是上一个矩阵的列数和下一个矩阵的行数相等
运算过程:
1 , 2 , 3 1 , 2 1*1+2*3+3*5 , 1*2+2*4+3*6
4 , 5 , 6 3 , 4 —> 4*1+5*3+6*5 4*2+5*4+6*6
5 , 6
转置也是经常用到的一个方法,在矩阵后面加上.T,就可以得到转换行列后的矩阵了