NumPy基础
一、NumPy ndarray
(一)生成ndarray
| 函数 | 描述(默认数据类型是float64) |
| array | 将输入数据(序列型对象)转换为ndarray,若不显示的指定数据类型,将自动推断;默认复制所有的输入数据 |
| asarray | 将输入转换为ndarray。但如果输入已经是ndarray,则不再复制 |
| arange | python内建函数range的数组版,返回一个数组 |
| ones | 根据指定形状和数据类型生成全1数组 |
| ones_like | 根据所给的数组生成一个形状一样的全1数组 |
| zeros | 根据给定形状和数据类型生成全0数组 |
| zeros_like | 根据所给的数组生成一个形状一样的全0数组 |
| empty | 根据给定形状生成一个没有初始化数值的空数组 |
| empty_like | 根据所给的数组生成一个形状一样但没有初始化数值的空数组 |
| full | 根据给定形状和数据类型生成指定数值的数组 |
| full_like | 根据所给的数组生成一个形状一样但内容是指定数值的数组 |
| eye,identity | 生成一个N×N特征矩阵(对角线位置都是1,其余位置是0) |
(二)ndarray的数据类型
| 类型 | 类型代码 | 描述 |
| int8,unit8 | i1,u1 | 有符号和无符号的8位整数 |
| int16,uint16 | i2,u2 | 有符号和无符号的16位整数 |
| int32,uint32 | i4,u4 | 有符号和无符号的32位整数 |
| int64,uint64 | i8,u8 | 有符号和无符号的64位整数 |
| float16 | f2 | 半精度浮点数 |
| float32 | f4或f | 标准单精度浮点数;兼容C语言float |
| float64 | f8或d | 标准双精度浮点数;兼容C语言double和Python float |
| float128 | f16或g | 拓展精度浮点数 |
| complex64,complex128,complex256 | c8,c16,c32 | 分别基于32位、64位、128位浮点数的复数 |
| bool | ? | 布尔值,存储True或False |
| object | o | Python object类型 |
| string_ |
S |
修正的ASCII字符串类型;例如生成一个长度为10的字符串类型,使用'S10' |
| unicode_ | U | 修正的Unicode类型,生成一个长度为10的Unicode类型,使用'U10' |
astype方法---显示地转换数组的数据类型
注意:使用astype时总是生成一个新的数组,即使传入的dtype与之前一样。
(三)NumPy数组算术
1、向量化:批量操作而无须任何for循环
2、等尺寸数组---逐元素操作
①标量计算---会把计算参数传递给数组的每一个元素
②比较---产生一个布尔值数组
3、不同尺寸数组的操作---广播特性(了解)
(四)基础索引与切片
1、索引
①区别于python的内建列表,数组的切片是原数组的视图---数据并不是被复制了,任何对于视图的修改都会反映到原数组上。
例1:arr([0,1,2,3,4,5])
arr[2:4]=12
arr([0,1,12,12,12,5])
例2:arr_slice=arr[2:4]
arr_slice[1]=12345
arr([0,1,12,12345,12,5])
注意:[:]将会引用数组的所有值;显示的复制数组---arr[2:4].copy()
②二维数组,可以传递一个索引的逗号分隔列表去选择单个元素
arr2d[0][2]相当于arr2d[0,2]
③多维数组,省略后续索引值,返回的对象将是降低一个维度的数组
例:2×2×3的数组 arr3d(
[[[1, 2, 3]
[4, 5, 6]]
[[7, 8, 9]
[10, 11, 12]]]
)
arr3d[0]是一个2×3的数组 arr3d[0](
[[1, 2, 3]
[4, 5, 6]]
)
标量和数组都可以传递给arr3d[0]---arr3d[0]=42、arr3d[0]=arr([[1 2 3][4 5 6]])
④数组的切片索引
将索引和切片混合,得到降低纬度的切片
例:arr2d=arr([[1 2 3][4 5 6][7 8 9]])
arr2d[1,:2]---arr([4,5])
arr2d[:2,2]---arr([3,6])
注意:单独一个冒号表示选择整个轴上的数组 arr2d[:,:1]---arr([1],[4],[7])
(五)布尔索引
使用pandas更方便
(六)神奇索引
神奇索引---用于描述使用整数数组进行数据索引
NumPy基础的更多相关文章
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- numpy 基础操作
Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...
- Numpy 基础
Numpy 基础 参考https://www.jianshu.com/p/83c8ef18a1e8 import numpy as np 简单创建数组 # 创建简单列表 a = [1, 2, 3, 4 ...
- [转]python与numpy基础
来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...
- python学习笔记(三):numpy基础
Counter函数可以对列表中数据进行统计每一个有多少种 most_common(10)可以提取前十位 from collections import Counter a = ['q','q','w' ...
- Numpy基础数据结构 python
Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数据 1.一维数组 import numpy as np ar = np.a ...
- Python Numpy基础教程
Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...
- NumPy基础操作
NumPy基础操作(1) (注:记得在文件开头导入import numpy as np) 目录: 数组的创建 强制类型转换与切片 布尔型索引 结语 数组的创建 相关函数 np.array(), np. ...
随机推荐
- CCS的文本及字体
1.文本 CSS 文本属性可定义文本的外观 通过文本属性,您可以改变文本的颜色.字符间距,对齐文本,装饰文本,对文本进行缩进,等等. 缩进文本 把 Web 页面上的段落的第一行缩进,这是一种最常用的文 ...
- wireshark相关知识
wireshark抓包原理如下 https://www.cnblogs.com/yhcreak/p/5911904.html
- 对于Linux内核执行过程的理解(基于fork、execve、schedule等函数)
382 + 原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 一.实验环境 win10 -> VMware -> Ubuntu1 ...
- 1. Packet sniffers (包嗅探器 14个)
十多年来,Nmap项目一直在编目网络安全社区最喜爱的工具. 2011年,该网站变得更加动态,提供打分,评论,搜索,排序和新工具建议表单. 本网站除了我们维护的那些工具(如Nmap安全扫描器,Ncat网 ...
- [noip2016]洛谷2827
来一发文字证明~ 数据范围很大... 如果用priority_queue搞的话肯定是会t的. 所以肯定要想一想优化的思路. 我们发现,对于队列来讲,同加,减是不改变这个队列的大小关系的: 但是呢,切开 ...
- 公司内网接口ip城市查询分析
require 'rubygems' require 'json' print ARGV print "fist is :",ARGV[0] logfile="#{ARG ...
- QCAD 怎么把多余的线剪掉
QCAD 怎么把多余的线剪掉 如下所示如果我在 AutoCAD 中我是使用 Trim 的功能,但是在 QCAD 似乎不可行. 然后现在以上而有个 Divide,感觉有用,相当于线打断,然后再删除,这个 ...
- Centos7安装Docker CE
每次安装Docker都要去找文档,或者每次安装的都不一样,还是要好好管理自己的这些东西,下次用的时候可以省很多的时间 Docker的早期版本称为docker或docker-engine:现在的 ...
- 18.16 gcc-3.4.5编译错误及解决方法集锦
18.16.1 自写BootLoader错误 ERROR : boot.c:: warning: return type of 'main' is not `int' ANSWER : int mai ...
- 关于mysql自增主键
对于mysql表(其他数据库没测试过) 如果定义了自增主键,并且手动设置了主键的值,那么当再次自增创建数据的时候,回在设置的主键值的基础上进行自增. 如(id是主键): 起始插入(3,1),而后手动插 ...