python -- numpy 基本数据类型,算术运算,组合,分割 函数
0 NumPy数组
NumPy数组:NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:
实际的数据
描述这些数据的元数据
NumPy数组属性:
ndim(纬数,x,y 2),shape(纬度,2*3),reshape(纬度),size:元素个数,dtype:元素数据类型,itemsize:所有元素的字节大小
创建数组:
使用array函数, a = array( [2,3,4] ), b = array( [ (1.5,2,3), (4,5,6) ] )
可以在创建时显式指定数组中元素的类型c = array( [ [1,2], [3,4] ], dtype=complex)
d = zeros((3,4))
ones( (2,3,4), dtype=int16 ) #手动指定数组中元素类型
empty((2,3))
full((2,3),8)
NumPy提供一个类似arange的函数返回一个数列形式的数组:
arange(10, 30, 5)
array([10, 15, 20, 25])
arange(0,2,0.5)
array([ 0. , 0.5, 1. , 1.5])
a = array([1,2,3,4])
a2 = array([1,2,3,4],[1,2,3,4],[1,2,3,4])
np.ones((2,3))
np.zeeros((2,4))
np.full((2,2),8)
1 NumPy中的基本数据类型
名称 描述
bool 用一个字节存储的布尔类型(True或False)
inti 由所在平台决定其大小的整数(一般为int32或int64)
int8 一个字节大小,-128 至 127
int16 整数,-32768 至 32767
int32 整数,-2 ** 31 至 2 ** 32 -1
int64 整数,-2 ** 63 至 2 ** 63 - 1
uint8 无符号整数,0 至 255
uint16 无符号整数,0 至 65535
uint32 无符号整数,0 至 2 ** 32 - 1
uint64 无符号整数,0 至 2 ** 64 - 1
float16 半精度浮点数:16位,正负号1位,指数5位,精度10位
float32 单精度浮点数:32位,正负号1位,指数8位,精度23位
float64或float 双精度浮点数:64位,正负号1位,指数11位,精度52位
complex64 复数,分别用两个32位浮点数表示实部和虚部
complex128或complex 复数,分别用两个64位浮点数表示实部和虚部
输出数组
2 NumPy数组2
数组的操作:数组的算术运算是按元素逐个运算。数组运算后将创建包含运算结果的新数组,有些操作符如+=和*=用来更改已存在数组而不创建一个新的数组。
基本运算:+,-,*./ 按元素逐个计算
索引切片和迭代:和列表和其它Python序列一样,一维数组可以进行索引、切片和迭代操作。 a[2],a[2:5], a[: :-1] # 反转a
a[:6:2]= -1000 # 等同于a[0:6:2]= -1000,从开始到第6个位置,每隔一个元素将其赋值为-1000
for i in a:
print i**(1/3.)
多维数组可以每个轴有一个索引。这些索引由一个逗号分割的元组给出。 b[0:5, 1]
形状shape操作
更改数组的形状: a.ravel() # 平坦化数组
3 自定义结构数组
student= dtype({'names':['name', 'age', 'weight'], 'formats':['S32', 'i','f']}, align = True)
a= array([(“Zhang”, 32, 65.5), (“Wang”, 24, 55.2)], dtype =student)
组合函数: 2 * a
水平组合:hstack((a, b)) ,也可通过concatenate函数并指定相应的轴来获得这一效果:concatenate((a, b), axis=1)
垂直组合: vstack((a, b))
深度组合: dstack((a, b)) 数组的第三个轴(即深度)上组合
行组合:row_stack((one, two)),每一行进行组合
列组合:column_stack((oned,two))
分割数组:在NumPy中,分割数组的函数有hsplit、vsplit、dsplit和split。可将数组分割成相同大小的子数组,或指定原数组分割的位置
水平分割:hsplit(a, 3),split(a, 3, axis=1)
垂直分割:vsplit(a, 3) ,也可通过split函数并指定轴为1来获得这样的效果:split(a, 3, axis=0)
面向深度的分割:dsplit(c, 3)
复制和镜像View
完全不复制:
简单的赋值,而不复制数组对象或它们的数据。
视图view和浅复制:
c = a.view() 切片数组返回它的一个视图,不同的数组对象分享同一个数据。视图方法创造一个新的数组对象指向同一数据。
深复制:
d = a.copy() 这个复制方法完全复制数组和它的数据。
更多资料请参考:
http://blog.csdn.net/sunny2038/article/details/9023797
python -- numpy 基本数据类型,算术运算,组合,分割 函数的更多相关文章
- Python numpy总结(3)——常用函数用法
1,np.ceil(x, y) 限制元素范围,进一法,即向上取整. x 表示输入的数据 y float类型 表示每个元素的上限. a = np.array([-1.7, -1.5, -0.2, 0. ...
- 【C++实现python字符串函数库】一:分割函数:split、rsplit
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...
- [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...
- Python 运算符与数据类型
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- Python——NumPy库入门
1.数据的纬度 维度:一组数据的组织形式 1.1 一维数据 一维数据由对等关系的有序或无序数据构成,采用线性方式组织 ,对应列表.数组和集合等概念 列表:数据类型可以不同 ,如 3.1413, 'pi ...
- python基础之数据类型(二)
Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- Python numpy中矩阵的用法总结
关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...
- CS231中的python + numpy课程
本课程中所有作业将使用Python来完成.Python本身就是一种很棒的通用编程语言,现在在一些流行的库(numpy,scipy,matplotlib)的帮助下,它为科学计算提供强大的环境. 我们希望 ...
随机推荐
- 【转】Java 有值类型吗?
Java 有值类型吗? 有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Java 也有值类型( ...
- 整合大量开源库项目(八)能够载入Gif动画的GifImageView
转载请注明出处王亟亟的大牛之路 上周大多数时间都是依据兴起,想到什么做什么写了几个自己定义控件,把Soyi丢在那没怎么动,今天就把写的东西整合进来,顺便把SOyi"个人研发的结构理一下&qu ...
- 第2章 Python基础-字符编码&数据类型 字符编码&字符串 练习题
1.简述位.字节的关系 位(bit)是计算机中最小的表示单元,数据传输是以“位”为单位的,1bit缩写为1b 字节(Byte)是计算机中最小的存储单位,1Byte缩写为1B 8bit = 1Byte ...
- pyspark dataframe 常用操作
spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能.当然主要对类SQL的支持. 在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选.合并,重新入库. 首先加 ...
- WPF对象级资源的定义与查找
文章概述: 本演示介绍了怎样定义WPF对象级的资源,并通过XAML代码和C#訪问和使用对象级资源. 相关下载(代码.屏幕录像):http://pan.baidu.com/s/1hqvJNY8 在线播放 ...
- RecyclerView中实现headerView,footerView功能
之前用com.bartoszlipinski.recyclerviewheader.RecyclerViewHeader 不过局限性有点大. (com.bartoszlipinski.recycler ...
- 关于Suppressing notification from package com.xxx.xxx by user request.的异常
其实以下都是废话. 如果你的测试的真机或者是模拟器是android4.1以上, 就有可能遇到这个Toast或者通知不能弹出. 自己不懂为什么. 想想你自己的应用设置是否有勾上这个 没有的话.就活该显示 ...
- Atitit vue.js 把ajax数据 绑定到form表单
Atitit vue.js 把ajax数据 绑定到form表单 1.1. 使用场景:主要应用在编辑与提交场合..1 1.2. 绑定数据到form控件,可以使用jquery,不过vue.js更加简单1 ...
- [svc]nginx优化
nginx的25条优化
- 【iOS XMPP】使用XMPPFramewok(五):好友列表
转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/17/3082226.html 好友列表 好友列表,在 XMPP 中被称为 roster,花名 ...