NumPy 数组类型介绍
来源:互联网 发布:朝鲜知乎 编辑:程序博客网 时间:2024/06/17 18:14
原文地址:http://blog.csdn.net/lsjseu/article/details/20359201
在原文基础上适当精简并更正少量原作者的笔误:
1. NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。
NumPy的数组类被称为ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。更多重要ndarray对象属性有:
>>> from numpy import *>>> a =arange(15).reshape(3, 5)>>> aarray([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])>>> a.shape # 数组的维度(3, 5)>>> a.ndim # 数组维度元组中元素的个数 几维的意思2>>> a.dtype.name'int32'>>> a.itemsize # 数组中每个元素的字节大小4>>> a.size # 数组中元素总数15>>> type(a)numpy.ndarray>>> b = array([6,7, 8])>>> barray([6, 7, 8])>>> type(b)numpy.ndarray
2. 创建数组:
a) 可以使用 array 函数从常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型推导而来:
>>> from numpy import *>>> a = array([2,3,4] )>>> aarray([2, 3, 4])>>> a.dtypedtype('int32')>>> b = array([1.2,3.5, 5.1])>>> b.dtypedtype('float64')
一个常见的错误包括用多个数值参数调用array而不是提供一个由数值组成的列表作为一个参数。
>>> a =array(1,2,3,4) # WRONG>>> a = array([1,2,3,4]) # RIGHT
b) 数组将序列包含序列转化成二维的数组,序列包含序列包含序列转化成三维数组等等:
>>> b = array( [(1.5,2,3), (4,5,6) ] )>>> barray([[ 1.5, 2. , 3. ], [ 4. , 5. , 6. ]])
c) 数组类型可以在创建时显示指定:
>>> c = array( [[1,2], [3,4] ], dtype=complex )>>> carray([[ 1.+0.j, 2.+0.j], [ 3.+0.j, 4.+0.j]])
d) 通常,数组的元素开始都是未知的,但是它的大小已知。因此,NumPy提供了一些使用占位符创建数组的函数。这最小化了扩展数组的需要和高昂的运算代价。
>>> zeros( (3,4) )array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]])>>> ones((2,3,4), dtype=int16 ) # dtype can also bespecifiedarray([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16)>>> empty( (2,3) )array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260], [ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
e) 函数zeros创建一个全是0的数组,函数 ones 创建一个全1的数组,函数 empty创建一个内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64。
f) 为了创建一个数列,NumPy提供一个类似arange的函数返回数组而不是列表:
>>> arange( 10, 30,5 )array([10, 15, 20, 25])>>> arange( 0, 2,0.3 ) # it accepts float argumentsarray([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
g) 当 arange 使用浮点数参数时,由于有限的浮点数精度,通常无法预测获得的元素个数。因此,最好使用函数linspace去接收我们想要的元素个数来代替用range来指定步长。
h) 数组操作更多实例
i) 打印数组:
当你打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局:
>>> a = arange(6) # 1d array>>>print a[0 1 2 3 4 5]>>> b =arange(12).reshape(4,3) # 2d array>>>print b[[ 0 1 2] [3 4 5] [6 7 8] [ 9 1011]]>>> c =arange(24).reshape(2,3,4) # 3d array>>>print c[[[ 0 1 2 3] [4 5 6 7] [8 9 10 11]] [[12 1314 15] [16 1718 19] [20 2122 23]]]
一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。
强制打印整个数组,你可以设置printoptions参数来更改打印选项。
>>>set_printoptions(threshold='nan')
- NumPy 数组类型介绍
- numpy 数组与类型
- numpy中数组介绍
- numpy数组拼接方法介绍
- numpy数组拼接方法介绍
- Python numpy函数:dtype数组元素类型
- python-numpy数组拼接方法介绍
- numpy介绍
- Numpy数组
- NumPy数组
- numpy数组
- numpy数组
- Numpy数组
- Numpy数组
- php 类型介绍(四中标量类型+数组)
- python中numpy介绍
- Numpy常用方法介绍
- numpy和scipy介绍
- 网络通信 - ping的具体过程
- Ubuntu 16.04LTS安装后需要做的事
- redis之列表类型
- "\\ndk-build.cmd" clean Cannot run program "\ndk-build.cmd": Launching failed解决方法
- 123BestTimetoBuyandSellStockIII
- NumPy 数组类型介绍
- 周易六十四卦——颐卦
- sql事务的隔离级别以及一些MYSQL的命令
- 传感器系列之4.12GPS定位传感器
- c++11学习 override 和 final 关键字
- hadoop 小结
- 树、森林和二叉树的转换
- JSP 基本语法
- Xcode7.1中在请求HTTP时报错的解决方法