• 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. August 23rd 2017 Week 34th Wednesday

    Do not pray for easy lives. Pray to be stronger men. 不要祈祷舒适的生活,而是祈祷自己能变得更强大. It seems this quotation ...

  2. January 02 2017 Week 1st Monday

    A day is a miniature of eternity. 一天是永恒的缩影. My life is short, but I can make something eternal. What ...

  3. Github文件夹下载到本地

    1.如图:需要将以下文件夹下载到本地. https://github.com/aspnet/Docs/tree/master/aspnet/mvc/overview/getting-started/i ...

  4. Echarts 嵌套饼图实现,内环点击控制外环显示

    Echarts有交互事件,但是如果用其进行图形变更,恐怕就只有重新修改配置了. 如图,我想要实现,内圈的数据控制外圈的图形,当点击内环的某一块时,就可以实现,更改外环的目的. 起初我想能不能直接修改o ...

  5. 从 Swift 中的序列到类型擦除

    如果有这样的一个需求,我希望能像数组一样,用 for 循环遍历一个类或结构体中的所有属性.就像下面这样: let persion = Persion() for i in persion { prin ...

  6. Eclipse查看.properties文件中文乱码

    在中文操作系统中,Eclipse中的Java类型文件的编码的默认设置是GBK,但是对Properties资源文件的编码的默认设置是ISO-8859-1.所以编辑Java文件中的中文不会出现问题,但编辑 ...

  7. HDU 1232 畅通工程(道路连接)(裸并查集)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others)     ...

  8. 如何求出数组中最小(或者最大)的k个数(least k问题)

    输入n个整数,如何求出其中最小的k个数? 解法1. 当然最直观的思路是将数组排序,然后就可以找出其中最小的k个数了,时间复杂度以快速排序为例,是O(nlogn): 解法2. 借助划分(Partitio ...

  9. 404 Note Found队 Alpha7

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  10. DPI在SDN中的部署方式

    目录 在sdn中的部署分类 将DPI部署到基础设施层 将DPI部署到控制层 将DPI部署到应用层 个人总结 参考文献 在sdn中的部署分类 DPI 可以分别部署到SDN的基础设施层.控制层和应用层. ...