numpy用法归纳
1.生成数组
import numpy as np
把python列表转换为数组
>>> np.array([1, 2, 3])
array([1, 2, 3])
把python的range对象转换为数组
>>> range(5)
range(0, 5)
生成等差数组
>>> np.linspace(0, 10, 5)
array([ 0. , 2.5, 5. , 7.5, 10. ])
对数数组
>>> np.logspace(0, 10, 2)
array([ 1.00000000e+00, 1.00000000e+10])
全0数组
>>> np.zeros((3, 3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
全1数组
>>> np.ones((2, 2))
array([[ 1., 1.],
[ 1., 1.]])
单位矩阵
>>> np.identity(2)
array([[ 1., 0.],
[ 0., 1.]])
空数组,只申请空间而不初始化,元素值不确定
>>> np.empty((2, 2))
array([[ 1., 1.],
[ 1., 1.]])
2.数组与数值的算术运算
数组可以直接与数值进行加减乘除运算,对应的是数组里每个元素与数值进相应的运算
3.数组与数组的算术运算
数组与数组相乘
>>> a = np.array([1, 2, 3])
>>> b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
>>> a*b
array([[ 1, 4, 9],
[ 4, 10, 18],
[ 7, 16, 27]])
一维数组与二维数组的运算,相当于把一维数组的维度看作一个整体向量与二维数组的第一维度中每个对应向量进行运算,并且运算的是针对两个向量中的对应每个元素进行运算,注意这两个运算的向量的维度需要相同
数组与数组的加减除运算规律如上相同
4.二维数组转置
>>> b
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> b.T
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
注意一维数组转置后和原理是一样的
5.向量内积
>>> a = np.array(([1, 2], [3, 4]))
>>> b = np.array(([5, 6], [7, 8]))
>>> a.dot(b)
array([[19, 22],
[43, 50]])
6.数组元素访问
创建等差数组
>>> arr = np.arange(0, 100, 10, dtype=np.floating)
>>> arr
array([ 0., 10., 20., 30., 40., 50., 60., 70., 80., 90.])
生成5个随机整数作为下标
>>> index = np.random.randint(0, len(arr), 5)
>>> index
array([5, 4, 2, 2, 8])
同时访问多个元素的值
>>> arr[index]
array([ 50., 40., 20., 20., 80.])
同时修改多个下标指定的元素值
>>> arr[index] = [1, 2, 3, 4, 5]
>>> arr
array([ 0., 10., 4., 30., 2., 1., 60., 70., 5., 90.])
7.对数组进行函数运算
np.sin(arr)
np.cos(arr)
np.round(_) # 四舍五入
np.floor(arr) # 所有元素向下取整
np.ceil(arr) # 所有元素向上取整
8.对矩阵不同维度上的元素进行计算
np.sum(arr, axis=0) # 二维数组纵向求和
np.mean(arr, axis=1) # 二维数组横向计算算术平均值
np.average(arr, axis=0, weights=weight) #二维数组纵向计算加权平均值
np.max(arr, axis=0) # 二维数组每列最大
np.std(arr, axis=1) # 每行元素的标准差
np.var(arr, axis=0) # 每列元素的标准差
np.sort(arr, axis=0) # 纵向排序
9.改变数组大小
>>> a
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> a.shape = 2, 5
>>> a
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
>>> a.shape = 5, -1
>>> a
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10]])
>>> b = a.reshape(2, -1)
>>> b
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
10.切片操作
>>> b
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
>>> b[1][::2]
array([ 6, 8, 10])
其他切片方式与列表切片相似
11.布尔运算
>>> b
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
>>> b > 5
array([[False, False, False, False, False],
[ True, True, True, True, True]], dtype=bool)
>>> a = np.random.rand(5)
>>> b = np.random.rand(5)
>>> a
array([ 0.35153042, 0.7211572 , 0.01421697, 0.80853614, 0.00126357])
>>> b
array([ 0.54159521, 0.14100028, 0.24689119, 0.40688594, 0.60708272])
>>> a > b
array([False, True, False, True, False], dtype=bool)
12.广播
>>> a = np.arange(0, 100, 20).reshape(-1, 1)
>>> a
array([[ 0],
[20],
[40],
[60],
[80]])
>>> b = np.arange(0, 5)
>>> b
array([0, 1, 2, 3, 4])
>>> a + b
array([[ 0, 1, 2, 3, 4],
[20, 21, 22, 23, 24],
[40, 41, 42, 43, 44],
[60, 61, 62, 63, 64],
[80, 81, 82, 83, 84]])
>>> a*b
array([[ 0, 0, 0, 0, 0],
[ 0, 20, 40, 60, 80],
[ 0, 40, 80, 120, 160],
[ 0, 60, 120, 180, 240],
[ 0, 80, 160, 240, 320]])
13.分段函数
>>> b
array([0, 1, 2, 3, 4])
>>> np.where(b > 1)
(array([2, 3, 4], dtype=int64),)
>>> np.where(b > 1, 0, 1)
array([1, 1, 0, 0, 0])
小于2的元素乘以2的幂次方,大于等于3的元素乘以2+2,没有选择到的元素为返回0
>>> np.piecewise(b, [b < 2, b >=3], [lambda x:x ** 2, lambda x: x*2 + 2])
array([ 0, 1, 0, 8, 10])
14.计算唯一值以及出现次数
>>> a
array([3, 5, 0, 5, 7, 8, 9, 6, 6, 9])
统计出现的次数
>>> np.bincount(a)
array([1, 0, 0, 1, 0, 2, 2, 1, 1, 2], dtype=int64)
返回唯一值,消去重复
>>> np.unique(a)
array([0, 3, 5, 6, 7, 8, 9])
15.矩阵运算
>>> a = np.random.random((2, 2))*100 % 10
>>> a
array([[ 7.14583047, 4.97659447],
[ 4.54034887, 4.28307445]])
>>> mat = np.matrix(a)
>>> mat
matrix([[ 7.14583047, 4.97659447],
[ 4.54034887, 4.28307445]])
>>> mat.sum()
20.945848263382267
>>> mat.max()
7.1458304748163357
>>> mat.shape
(2, 2)
>>> mat.size
4
>>> mat.mean()
5.2364620658455667
>>> mat.argsort(axis=0)
matrix([[1, 1],
[0, 0]], dtype=int64)
>>> mat.argsort(axis=1)
matrix([[1, 0],
[1, 0]], dtype=int64)
>>> mat.diagonal()
matrix([[ 7.14583047, 4.28307445]])
numpy用法归纳的更多相关文章
- 比较合并工具vimdiff的主要用法归纳
参考:https://www.ibm.com/developerworks/cn/linux/l-vimdiff/ vimdiff主要用法归纳如下: 1.打开文件 vimdiff file1 fi ...
- until与till的用法归纳
until与till的用法归纳 崔荣斌 until和till两者都可作介词.连词,一般情况下可以互换使用.用于肯定句时,主句的动词只用延续性的,它所表示的动作一直延续到till或until表示的时间为 ...
- numpy用法小结
前言 个人感觉网上对numpy的总结感觉不够详尽细致,在这里我对numpy做个相对细致的小结吧,在数据分析与人工智能方面会有所涉及到的东西在这里都说说吧,也是对自己学习的一种小结! numpy用法的介 ...
- python3 numpy基本用法归纳总结
安装numpy : pip install numpy numpy数组生成方法总结 In [4]: import numpy as np #使用列表生成一个一维数组 data = [1,2,3,4,5 ...
- python科学计算包numpy用法(一)
numpy是python中一个用来做科学计算的包,用起来十分方便,下面是我总结的numpy的用法: 1.如何创建矩阵 创建矩阵有很多种方法,主要包括以下几种: 通过array函数创建 >> ...
- const用法归纳总结 C++
非常好的一篇分析const的总结归纳, 在此谢谢原作者:http://blog.csdn.net/zcf1002797280/article/details/7816977 在普通的非 const成员 ...
- 自己总结numpy用法
最近用numpy比较多,边用边自己总结用法. 1. 数组 1.1 生成 m行 * n列 的随机数组 import numpy as np # 生成 m行*n列 的随机数组 # np.random.ra ...
- ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
- Numpy 用法小结
1. asarray 函数 可以将输入数据转化为矩阵格式. 输入数据可以是(列表,元组,列表的列表,元组的元组,元组的列表等这些数组形式). >>> asarray([(1,2,3 ...
随机推荐
- org/w3c/dom/ElementTraversal 错误解决办法
org/w3c/dom/ElementTraversal 错误解决办法 不记得之前几天把什么maven依赖包删除了,今天利用htmlunit运行代码的时候报了下面的错误: Exception in t ...
- 网易内推(Android) 拿offer
学校BBS上师兄发网易内推,凑下热闹投了一发 一面:电话面 大概25分钟,感觉面试官气场很足,主要关注了其中一个 个人开源项目 1.自我介绍 2.说说你做的这个项目 当时谈到使用到了开源框架xtuil ...
- 网站开发进阶(二十八)初探localStorage
初探localStorage 注: localStorage经典项目应用案例 HTML5中提供了localStorage对象可以将数据长期保存在客户端,直到人为清除. localStora ...
- android 自定义下拉菜单
本实例的自定义下拉菜单主要是继承PopupWindow类来实现的弹出窗体,各种布局效果可以根据自己定义设计.弹出的动画效果主要用到了translate.alpha.scale,具体实现步骤如下: 先上 ...
- LeetCode之“动态规划”:Climbing Stairs
题目链接 题目要求 You are climbing a stair case. It takes n steps to reach to the top. Each time you can eit ...
- 销售行业ERP数据统计分析都有哪些维度?
场景描述 当前的企业信息化建设主要包括ERP系统.OA系统等.企业希望实现信息系统数据的整合,对企业资源进行分析汇总,方便对企业相关数据的掌控从而便于对业务流程进行及时调整监控. 但是由于系统间数据的 ...
- kettle 的表输出 table output
kettle的表输出: 双击后,看设置, 1,在connecttion后面,点击new里新建一个.设定各个选项值,如选择mysql类型,则配置hostname,database name,端口, 用户 ...
- mybatis源码之PreparedStatementHandler
/** * @author Clinton Begin */ public class PreparedStatementHandler extends BaseStatementHandler { ...
- HBase 二级索引与Join
二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案. 这篇文章会以HBase做为对象来探讨如何基于Hba ...
- LeetCode刷题之合并排序链表
合并两个有序链表并返回一个新的列表.新列表应该由连接在一起的节点前两个列表 给定实例:Input: 1->2->4, 1->3->4Output: 1->1->2- ...