numpy模块(对矩阵的处理,ndarray对象)
6.12自我总结
一.numpy模块
import numpy as np
约定俗称要把他变成np
1.模块官方文档地址
https://docs.scipy.org/doc/numpy/reference/?v=20190307135750
2.创建矩阵
1.np.array
import numpy as np
#创建一维的ndarray对象
arr = np.array([1, 2, 3])
print(arr)
#[1 2 3]
#创建二维的ndarray对象
arr = np.array([[1, 2, 3],
[4,5,6]])
print(arr)
'''
[[1 2 3]
[4 5 6]]
'''
#创建三维的ndarray对象
arr = np.array([[[1, 2, 3],[3,2,1]],
[[4,5,6],[6,5,4]]])
print(arr)
'''
[[[1 2 3]
[3 2 1]]
[[4 5 6]
[6 5 4]]]
'''
#我们可以这样理解.其实内这个可以相当于几何里面的,点,线,面,里面各个元素相当一个点,一个列表里面有几个元素相当于线也就是一维,然后列表里面套列表相当于线,以此类推
3.对于矩阵的操作(ndarray对象的方法)
1.shape(查看ndarray对象的形式)
import numpy as np
arr = np.array([[1, 2, 3],
[4,5,6]])
print(arr.shape)
#(2, 3)
# (矩阵的行数,矩阵的列数)
2.切分工具
import numpy as np
arr = np.array([[1, 2, 3],
[4,5,6]])
#取第一行全部
print(arr[0,:])
#取第一列全部
print(arr[:,0])
#取第二行第二个
print(arr[1,1],type(arr[1,1])) #5 <class 'numpy.int32'>
print(arr[1,1:2],type(arr[1,1:2]))#[5] <class 'numpy.ndarray'>
#取第二行第第二个和第三个
print(arr[1,1:3])
#取大于3的值
print(arr[arr>3])
#取第第一列大于3的值
arr_lien = arr[:,0]
print(arr_lien[arr_lien>3])
3.生成布尔矩阵
import numpy as np
arr = np.array([[1, 2, 3],
[4,5,6]])
print(arr>5)
'''
[[False False False]
[False False True]]
'''
4.矩阵的替换
用切片取值然后进行赋值
5.矩阵合并
1.np.concatenate
import numpy as np
arr1 = np.array([[1, 2, 3],
[4,5,6]])
arr1 = np.array([[3, 2, 4],
[5,3,7]])
print(np.concatenate((arr1,arr2),axis=0或1) #前面只能写入一个容器,后面用axis控制竖着合并还是横着合并
6.矩阵的生成
1.arange
np.arage(起始值,结束值,步长)#顾头不顾尾,用法类似for 循环中的range
2.linspace/logspace
# 构造一个等差数列,取头也取尾,从0取到20,取5个数
print(np.linspace(0, 20, 5))
#[ 0. 5. 10. 15. 20.]
# 构造一个等比数列,从10**0取到10**20,取5个数
print(np.logspace(0, 20, 5))
[1.e+00 1.e+05 1.e+10 1.e+15 1.e+20]
3.zeros/ones/eye
# 构造3*4的全0矩阵
print(np.zeros((3, 4))) #填的值为(行数,列数)
# 构造3*4的全1矩阵
print(np.ones((3, 4))) #填的值为(行数,列数)
# 构造3个主元的单位矩阵
print(np.eye(3)) #填的值为(主元的个数)
'''
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
'''
4.fromstring/fromfunction
# fromstring通过对字符串的字符编码所对应ASCII编码的位置,生成一个ndarray对象
s = 'abcdef'
# np.int8表示一个字符的字节数为8
print(np.fromstring(s, dtype=np.int8))
def func(i, j):
"""其中i为矩阵的行,j为矩阵的列"""
return i*j
# 使用函数对矩阵元素的行和列的索引做处理,得到当前元素的值,索引从0开始,并构造一个3*4的矩阵
print(np.fromfunction(func, (3, 4)))
7.随机生成(np.random)
# RandomState()方法会让数据值随机一次,之后都是相同的数据
rs = np.random.RandomState(1)
print(rs.rand(10))
# 构造3*4的均匀分布的矩阵
# seed()方法会让数据值随机一次,之后都是相同的数据
np.random.seed(1)
print(np.random.rand(3, 4))
# 构造3*4*5的均匀分布的矩阵
print(np.random.rand(3, 4, 5))
# 构造3*4的正态分布的矩阵
print(np.random.randn(3, 4))
# 构造取值为1-5内的10个元素的ndarray数组
print(np.random.randint(1, 5, 10))
# 构造取值为0-1内的3*4的矩阵
print(np.random.random_sample((3, 4)))
# 随机选取arr中的两个元素
print(np.random.choice(arr, size=2))
对照表
函数名称 | 函数功能 | 参数说明 |
---|---|---|
rand(d0,d1,⋯,dn) | 产生[0,1)内的均匀分布的随机数 | dn为第n维数据的维度 |
randn(d0,d1,⋯,dn) | 产生标准正态分布随机数 | dn为第n维数据的维度 |
randint(low[, high, size, dtype]) | 产生随机整数 | low:最小值;high:最大值;size:数据个数 |
random_sample([size]) | 在[0,1)内产生随机数 | size为随机数的shape,可以为元祖或者列表 |
choice(a[, size]) | 从arr中随机选择指定数据 | arr为1维数组;size为数据形状 |
4.矩阵运算(与数据类型差不多)
运算表
运算符 | 说明 |
---|---|
+ | 两个矩阵对应元素相加 |
- | 两个矩阵对应元素相减 |
* | 两个矩阵对应元素相乘 |
/ | 两个矩阵对应元素相除,如果都是整数则取商 |
% | 两个矩阵对应元素相除后取余数 |
**n | 单个矩阵每个元素都取n次方,如**2:每个元素都取平方 |
4.矩阵的行和列互换(transpose)
5.矩阵的最大最小值 ,平均值,方差
1.最大值ndarray对象
.max
2.最小值ndarray对象
.min
3.平均值ndarray对象
.mean
4.方差ndarray对象
.var
()代表区别
(axis=0)每列
(axis=1)每行
# 获取矩阵所有元素中的最大值
print(arr.max())
# 获取举着每一列的最大值
print(arr.max(axis=0))
# 获取矩阵每一行的最大值
print(arr.max(axis=1))
# 获取矩阵最大元素的索引位置
print(arr.argmax(axis=1)
# 获取矩阵所有元素的平均值
print(arr.mean())
# 获取矩阵每一列的平均值
print(arr.mean(axis=0))
# 获取矩阵每一行的平均值
print(arr.mean(axis=1))
# 获取矩阵所有元素的方差
print(arr.var())
# 获取矩阵每一列的元素的方差
print(arr.var(axis=0))
# 获取矩阵每一行的元素的方差
print(arr.var(axis=1))
numpy模块(对矩阵的处理,ndarray对象)的更多相关文章
- Pathon中numpy模块
目录 numpy模块 切割矩阵 矩阵元素替换 矩阵的合并 通过函数创建矩阵 fromstring/fromfunctions 矩阵的运算 常用矩阵运函数 矩阵的点乘 矩阵的逆 矩阵的其他操作 nump ...
- 开发技术--Numpy模块
开发|Numpy模块 Numpy模块是数据分析基础包,所以还是很重要的,耐心去体会Numpy这个工具可以做什么,我将从源码与 地产呢个实现方式说起,祝大家阅读愉快! Numpy模块提供了两个重要对象: ...
- numpy模块之创建矩阵、矩阵运算
本文参考给妹子讲python https://zhuanlan.zhihu.com/p/34673397 NumPy是Numerical Python的简写,是高性能科学计算和数据分析的基础包,他是 ...
- Numpy Ndarray对象1
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指 针.这样为了保存一个简单的[1,2,3],需要有3个指针和三 ...
- Numpy Ndarray对象
Numpy 最重要的一个特点是 N 维数组对象 ndarrary ,它是一系列同类型数据的集合,以 0 下标为开始进行集合中的索引. ndarray 对象是用于存放同类型元素的多维数组. ndarra ...
- 3.1Python数据处理篇之Numpy系列(一)---ndarray对象的属性与numpy的数据类型
目录 目录 (一)简单的数组创建 1.numpy的介绍: 2.numpy的数组对象ndarray: 3.np.array(list/tuple)创建数组: (二)ndarray对象的属性 1.五个常用 ...
- NumPy Ndarray 对象
NumPy Ndarray 对象 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放 ...
- NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构
本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...
- Numpy | 02 Ndarray 对象
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放同类型元素的多维数组. ndarr ...
随机推荐
- Excel - 使用公式将秒转换为分+秒
场景 现在有个需求:将Excel里的时间转换为分+秒的格式,如下: time(second) time(min+second) 482.712 XXmin,XXs 480.737 XXmin,XXs ...
- iphone、ipad等网页中电话号码呈蓝色的解决方案
iPhone手机.ipad上的浏览器(如Safari),在解析网页的时候会自动给 像是电话号码的数字 加上link样式,所以号码呈蓝色. 可以添加下面的meta禁用掉这个功能. <meta na ...
- 097 Interleaving String 交错字符串
给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的.例如,给定:s1 = "aabcc",s2 = "dbbca",当 s ...
- 打包google浏览器插件到本地
依次打开‘更多工具’--->'扩展程序',或者在google浏览器输入chrome://extensions/网址就可以打开已安装插件页面,在顶部选中‘开发者模式’后就会出现每个插件的ID,这个 ...
- 安卓新的联网方式 Volley的使用(2)
如果使用volley 获取 网络图片 最好还是用 Volley 提供的NetworkImageView类, 可以很轻松的 完成工作, 而且他可以设置缓存, lru 和 sd卡的缓存.一些都封装好了. ...
- 03.Javascript——入门一些方法记录之Map和Set
JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实际上Number ...
- Java方式配置Spring
概述 本文主要讲的是如何使用Java Bean来配置Spring,而不是用xml来配置Spring. 本文主要是代码,需要注意的都在注释里面. 代码打包下载地址(注:项目使用Maven构建) Java ...
- Ubuntu系统下安装字体和切换默认字体的方法
参考链接:http://my.oschina.net/itblog/blog/278566 打开Ubuntu的软件中心,搜索:tweak,安装[Unity Tweak Tool]这款软件,如图(由于我 ...
- 在Windows 10删除百度云盘的盘符
1点击微软图标不放,然后点击R 打开运行命令 2输入 Regedit 进入注册表 3找到以下路径:HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows ...
- POJ 2486 Apple Tree (树形DP,树形背包)
题意:给定一棵树图,一个人从点s出发,只能走K步,每个点都有一定数量的苹果,要求收集尽量多的苹果,输出最多苹果数. 思路: 既然是树,而且有限制k步,那么树形DP正好. 考虑1个点的情况:(1)可能在 ...