• 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基础的更多相关文章

  1. Python 学习笔记三

    笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...

  2. Python学习笔记1:基础

    1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 你也可以为源文件指定不同的字符编码.在 #! 行(首行)后插入至少一行特殊的注释行来定义 ...

  3. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  4. python学习笔记三 深浅copy,扩展数据类型(基础篇)

    深浅copy以及赋值 对于字符串和数字而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = #n1 = 'hahahaha' #赋值n2 = n1#浅co ...

  5. 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 ...

  6. python学习笔记三 函数(基础篇)

    函数 内置函数 常用的内建函数: type()  列出指定对象的类型 help()  能够提供详细的帮助信息 dir()    将对象的所有特性列出 vars()  列出当前模块的所有变量 file, ...

  7. webdriver(python) 学习笔记三

    知识点:简单的对象定位 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪 ...

  8. Python学习笔记一(基础信息)

    目录 输入输出 数据类型和变量 整数 浮点数 字符串 布尔值 空值 变量 常量 小结 欢迎关注我的博客我在马路边 说明:此笔记不是从零开始,在学习的过程中感觉需要记录一些比较重要和需要重复浏览的信息, ...

  9. 吴裕雄--python学习笔记:爬虫基础

    一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...

  10. python学习笔记三--字典

    一.字典: 1. 不是序列,是一种映射, 键 :值的映射关系. 2. 没有顺序和位置的概念,只是把值存到对应的键里面. 3. 通过健而不是通过偏移量来读取 4. 任意对象的无序集合 5. 可变长,异构 ...

随机推荐

  1. Sqoop操作集合

    1.在hive中建一个与mysql中一模一样的表 sqoop create-hive-table --connect jdbc:mysql://***.**.***.**:3306/数据库名称 --t ...

  2. H5 签到功能

    Introduce(介绍) 用户签到的H5例子(css+jquery,无图片),由于网上找的的用户签到例子都不好,要不就是好多图片组成的,要不就大量冗余代码,所以特意做了个签到界面(移动端). Use ...

  3. 在ASP.NET MVC中,使用Bundle来打包压缩js和css(转)

    转自:http://www.cnblogs.com/xwgli/p/3296809.html 在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和c ...

  4. Excel 导出指定行为txt文件(VBA,宏)

    要从Excel 多个sheet内导出指定行为txt文件,懒得用C#了,写个VBA宏 Sub Export() Dim FileName As Variant Dim Sep As String Dim ...

  5. codeforces 633E Startup Funding(浮点数处理)

    codeforces 633E Startup Funding 题意 枚举左端点,对于每个左端点求一个最大的右端点使得最大. 对于得到的这个数组,随机选择k个数,求最小值期望. 题解 对于每个左端点, ...

  6. LVS.md

    LVS 概述 简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,官方站点.现在LVS已经是 Linux标准内核的一部分, ...

  7. 对deferred(延迟对象)的理解

    deferred对象从jQuery 1.5.0开始引入 什么是defrred对象 开发网站过程中,我们经常遇到某些耗时长的JS操作,其中,既有异步操作(如Ajax读取服务器数据),也有同步的操作(如遍 ...

  8. Android绘图机制和处理技巧

    色彩特效处理 在色彩处理中,使用以下三个角度来描述一个图像. 色调: 物体传播的颜色 饱和度: 颜色的纯度, 从0(灰)到100%(饱和)来进行描述 亮度: 颜色的相对明暗程度 在Android中, ...

  9. Go 测试单个方法

    1.目录 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float64, er ...

  10. ROS C++ 规范概要

    一.动机 代码一致才能可读.联调.高效率.高复用.可移植性. 二.命名方式 CamelCased camelCased under_scored ALL_CAPITALS 2.1 Package命名方 ...