python学习笔记(三):numpy基础
- Counter函数可以对列表中数据进行统计每一个有多少种
- most_common(10)可以提取前十位
from collections import Counter
a = ['q','q','w','w','w']
count = Counter(a)
count.most_common(1)
[('w', 3)]
count
Counter({'q': 2, 'w': 3})
pandas中的series对象有一个value_counts方法可以计数
.fillna()函数可以替换确实值NA
import numpy as np
from numpy.random import randn
data = {i : randn() for i in range(7)}
data
{0: -0.2657989059225722,
1: -1.2517286143172295,
2: -0.6360811023039581,
3: 1.2009891917346602,
4: 1.7528414640242418,
5: -0.24155970563487628,
6: -0.7637924413712933}
- 最近的两个结果保存在_和__中
9*3
27
_
27
%pwd
# 获得当前工作目录
'D:\\Code\\Python\\code'
- 魔法命令
- %time 一条语句的执行时间
- %timeit 执行多次的平均时间
numpy基础
import numpy as np
data1 = [6, 7.5, 8],[2, 0 ,1]
arr1 = np.array(data1)
arr1
array([[6. , 7.5, 8. ],
[2. , 0. , 1. ]])
arr1.ndim
2
arr1.shape
(2, 3)
arr1.dtype
dtype('float64')
np.zeros((2, 3, 4))
array([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
np.ones((3))
array([1., 1., 1.])
np.arange(9)
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
np.eye(3,)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
- 数组切片后的修改会反映到原始数组上
arr = np.arange(9)
arr2 = arr[5:8]
arr2[:] = 4
arr
array([0, 1, 2, 3, 4, 4, 4, 4, 8])
arr = np.arange(9)
arr2 = arr[5:8].copy()
arr2[:] = 4
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
- 三维数组先是层、行、列
data = np.random.randn(4,3)
data
array([[ 0.7144327 , 0.87144603, 1.10651404],
[-0.19509352, -0.01102958, 1.8051039 ],
[ 0.03106339, 0.83767495, 0.20094192],
[ 0.96032146, -0.40303045, 1.4522938 ]])
data[[1,2,0],[1,2,0]]
# 取出来的数据为(11)(22)(00)
array([-0.01102958, 0.20094192, 0.7144327 ])
- 不连续提取数据
data[[0,2]][:,[0,2]]
# 跳着取方法一
array([[0.7144327 , 1.10651404],
[0.03106339, 0.20094192]])
data[np.ix_([0,2],[0,2])]
# 跳着取方法二
array([[0.7144327 , 1.10651404],
[0.03106339, 0.20094192]])
data.T
array([[ 0.7144327 , -0.19509352, 0.03106339, 0.96032146],
[ 0.87144603, -0.01102958, 0.83767495, -0.40303045],
[ 1.10651404, 1.8051039 , 0.20094192, 1.4522938 ]])
np.sqrt(data)
F:\Anaconda\lib\site-packages\ipykernel_launcher.py:1: RuntimeWarning: invalid value encountered in sqrt
"""Entry point for launching an IPython kernel.
array([[0.84524121, 0.93351274, 1.05190971],
[ nan, nan, 1.34354155],
[0.17624808, 0.91524584, 0.44826546],
[0.97995993, nan, 1.20511153]])
np.exp(data)
array([[2.04302734, 2.39036489, 3.02379915],
[0.82275771, 0.98903102, 6.0806032 ],
[1.03155089, 2.31098757, 1.22255377],
[2.61253617, 0.66829175, 4.27290447]])
np.rint(data)
# 四舍五入
array([[ 1., 1., 1.],
[-0., -0., 2.],
[ 0., 1., 0.],
[ 1., -0., 1.]])
np.modf(data)
# 将数据分为小数和整数部分
(array([[ 0.7144327 , 0.87144603, 0.10651404],
[-0.19509352, -0.01102958, 0.8051039 ],
[ 0.03106339, 0.83767495, 0.20094192],
[ 0.96032146, -0.40303045, 0.4522938 ]]), array([[ 0., 0., 1.],
[-0., -0., 1.],
[ 0., 0., 0.],
[ 0., -0., 1.]]))
np.isnan(data)
array([[False, False, False],
[False, False, False],
[False, False, False],
[False, False, False]])
np.where(data > 0,9,data)
array([[ 9. , 9. , 9. ],
[-0.19509352, -0.01102958, 9. ],
[ 9. , 9. , 9. ],
[ 9. , -0.40303045, 9. ]])
- axis中0表示竖向求和,1表示横向求和
np.mean(data,axis=1)
array([0.89746426, 0.5329936 , 0.35656009, 0.6698616 ])
np.in1d(data, [1,2,3])
# 查看data中每个元素是否在1,2,3内
array([False, False, False, False, False, False, False, False, False,
False, False, False])
from numpy.linalg import inv, qr
from numpy.random import randn
x = randn(5,5)
mat = x.dot(inv(x))
# 求逆
mat = np.rint(mat)
mat
array([[ 1., 0., -0., 0., 0.],
[ 0., 1., -0., 0., 0.],
[ 0., -0., 1., 0., 0.],
[-0., 0., -0., 1., -0.],
[-0., 0., 0., -0., 1.]])
np.diag(mat)
# 返回对角线元素
array([1., 1., 1., 1., 1.])
np.random.permutation(mat)
# 返回序列的随机排列
array([[ 0., -0., 1., 0., 0.],
[-0., 0., -0., 1., -0.],
[ 1., 0., -0., 0., 0.],
[-0., 0., 0., -0., 1.],
[ 0., 1., -0., 0., 0.]])
np.random.randint(0,2,12)
array([1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1])
python学习笔记(三):numpy基础的更多相关文章
- Python 学习笔记三
笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...
- Python学习笔记1:基础
1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 你也可以为源文件指定不同的字符编码.在 #! 行(首行)后插入至少一行特殊的注释行来定义 ...
- python学习笔记三 文件操作(基础篇)
文件操作 打开文件 open(name[,mode[,buffering]]) open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉] w ...
- python学习笔记三 深浅copy,扩展数据类型(基础篇)
深浅copy以及赋值 对于字符串和数字而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = #n1 = 'hahahaha' #赋值n2 = n1#浅co ...
- Python 学习笔记之 Numpy 库——数组基础
1. 初识数组 import numpy as np a = np.arange(15) a = a.reshape(3, 5) print(a.ndim, a.shape, a.dtype, a.s ...
- python学习笔记三 函数(基础篇)
函数 内置函数 常用的内建函数: type() 列出指定对象的类型 help() 能够提供详细的帮助信息 dir() 将对象的所有特性列出 vars() 列出当前模块的所有变量 file, ...
- webdriver(python) 学习笔记三
知识点:简单的对象定位 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪 ...
- Python学习笔记一(基础信息)
目录 输入输出 数据类型和变量 整数 浮点数 字符串 布尔值 空值 变量 常量 小结 欢迎关注我的博客我在马路边 说明:此笔记不是从零开始,在学习的过程中感觉需要记录一些比较重要和需要重复浏览的信息, ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- python学习笔记三--字典
一.字典: 1. 不是序列,是一种映射, 键 :值的映射关系. 2. 没有顺序和位置的概念,只是把值存到对应的键里面. 3. 通过健而不是通过偏移量来读取 4. 任意对象的无序集合 5. 可变长,异构 ...
随机推荐
- Windows系统通用安全配置基线
一:共享账号检查 配置名称:账号分配检查,避免共享账号存在 配置要求: 1.系统需按照实际用户分配账号: 2.根据系统的使用需求,设定不同的账户和账户组,包括管理员用户,数据库用户,审计用户,来宾用户 ...
- 用timer自定义计划任务时间
应业务需求,需要将指定程序,按照指定时间进行运行, 而windows计划任务最小运行间隔时间为1分钟,完全不能满足当前需求, 有两种方案,一种是安装win服务方式,考滤到维护困难,另一种是timer方 ...
- C语言基础笔试题一
1.下面的代码输出什么?为什么? void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6)?puts(">6&quo ...
- vue 项目搭建笔记1
1.首先安装node.js(傻瓜式安装,安装路径默认C盘) 2.打开node.js command prompt 3.进入想放项目的文件夹.如D: -->回车 4.进入具体文件夹,如cd wo ...
- Guava包学习-Cache
这段时间用到了ehcache和memcache,memcache只用来配置在tomcat中做负载均衡过程中的session共享,然后ehcache用来存放需要的程序中缓存. Guava中的Cache和 ...
- UVa 10900 - So you want to be a 2n-aire?(期望DP)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Mysql注入攻击与防御(思维导图笔记)
- mvc4中viewbag viewdata 和 tempdata的区别
ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析. eg: ViewBag.NumberObjs = new string[] { "on ...
- 算法——(5)B/B+/红黑树
1. B树——lgdN B树是平衡多路查找树,主要用于文件系统的索引. 1)定义: 对于一个度数为d的B树, 每个结点最多有d个孩子 如果根结点不是叶子结点,那它至少有两个孩子 每个非叶子结点(非根结 ...
- MongoDB简易
一 安装 1.下载 $ brew install mongodb 2.启动 $ mongod --config /usr/local/etc/mongod.conf 3.连接 $ mongo 二 ...