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 基本数据类型,算术运算,组合,分割 函数的更多相关文章

  1. Python numpy总结(3)——常用函数用法

    1,np.ceil(x, y) 限制元素范围,进一法,即向上取整. x 表示输入的数据  y float类型 表示每个元素的上限. a = np.array([-1.7, -1.5, -0.2, 0. ...

  2. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

  3. [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()

    Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...

  4. Python 运算符与数据类型

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  5. Python——NumPy库入门

    1.数据的纬度 维度:一组数据的组织形式 1.1 一维数据 一维数据由对等关系的有序或无序数据构成,采用线性方式组织 ,对应列表.数组和集合等概念 列表:数据类型可以不同 ,如 3.1413, 'pi ...

  6. python基础之数据类型(二)

    Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...

  7. 第一节 Python基础之数据类型(整型,布尔值,字符串)

    数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...

  8. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  9. CS231中的python + numpy课程

    本课程中所有作业将使用Python来完成.Python本身就是一种很棒的通用编程语言,现在在一些流行的库(numpy,scipy,matplotlib)的帮助下,它为科学计算提供强大的环境. 我们希望 ...

随机推荐

  1. STS 设置代码注释模板

    打开Window->Preferences->Java->Code Style->Code Templates <?xml version="1.0" ...

  2. Windows 重装系统-用户转移User和Program Files 文件夹

    原文地址:https://blog.csdn.net/sinat_38799924/article/details/74059037 重装系统时为了让系统数据保持可用我们需要做一些备份处理.比如用户数 ...

  3. PHP中数字检测is_numeric与ctype_digit的区别介绍

    PHP中的两个函数is_numeric和ctype_digit都是检测字符串是否是数字,但也存在一点区别 is_numeric:检测是否为数字字符串,可为负数和小数 ctype_digit:检测字符串 ...

  4. Oracle 12C -- clone a remote pdb

    Connect to the remote CDB and prepare the remote PDB for cloning. SQL> select con_id,dbid,name,op ...

  5. FreeSWITCH网关参数之caller-id-in-from

    1. 这个配置项两个设置值: true和false(默认) <param name="caller-id-in-from" value="true"/&g ...

  6. 【python】Python 资源大全中文版

    申明:感谢原作者的整理与分享,本篇文章分享自:https://www.jianshu.com/p/9c6ae64a1bd7 GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常 ...

  7. 分布式服务管理框架-Zookeeper节点ACL

    文章转自:http://blog.csdn.net/xyang81/article/details/53147894 概述 ACL全称为Access Control List(访问控制列表),用于控制 ...

  8. spark-submit的参数名称解析

    执行时需要传入的参数说明 Usage: spark-submit [options] <app jar | Python file> [app options] 参数名称 含义 --mas ...

  9. php实现文件下载代码一例

    php实现文件下载代码 需要用到header函数来发送相关信息给客户端浏览器,同时再结合filesize函数来读取文件大小并进行下载操作.简单的文件下载只需要使用HTML的连接标记<a>, ...

  10. 深入理解Linux内核-进程调度

    1.什么时候进行进程切换 调度策略目标:1.进程响应尽量快:2.后台作业吞吐量尽量高:3.尽可能避免进程饥饿:4.低优先级和高优先级进程需要尽量调和. 调度策略:决定什么时候选择什么进程运行的规则.基 ...