numpy的使用
数据类型
- bool_ 存储为一个字节的布尔值(真或假)
- int_ 默认整数,相当于 C 的long,通常为int32或int64
- intc 相当于 C 的int,通常为int32或int64
- intp 用于索引的整数,相当于 C 的size_t,通常为int32或int64
- int8 字节(-128 ~ 127)
- int16 16 位整数(-32768 ~ 32767)
- int32 32 位整数(-2147483648 ~ 2147483647)
- int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)
- uint8 8 位无符号整数(0 ~ 255)
- uint16 16 位无符号整数(0 ~ 65535)
- uint32 32 位无符号整数(0 ~ 4294967295)
- uint64 64 位无符号整数(0 ~ 18446744073709551615)
- float_ float64的简写
- float16 半精度浮点:符号位,5 位指数,10 位尾数
- float32 单精度浮点:符号位,8 位指数,23 位尾数
- float64 双精度浮点:符号位,11 位指数,52 位尾数
- complex_ complex128的简写
- complex64 复数,由两个 32 位浮点表示(实部和虚部)
- complex128 复数,由两个 64 位浮点表示(实部和虚部)
数据类型对象 (dtype)
数据类型(整数、浮点或者 Python 对象)
数据大小
字节序(小端或大端)
在结构化类型的情况下,字段的名称,每个字段的数据类型,和每个字段占用的内存块部分。
如果数据类型是子序列,它的形状和数据类型
# 使用数组标量类型
import numpy as np
dt = np.dtype(np.int32)
print dt#int8,int16,int32,int64 可替换为等价的字符串 'i1','i2','i4',以及其他。
import numpy as np dt = np.dtype('i4')
print dt # 使用端记号
import numpy as np
dt = np.dtype('>i4')
print dt# 首先创建结构化数据类型。
import numpy as np
dt = np.dtype([('age',np.int8)])
print dt # 文件名称可用于访问 age 列的内容
import numpy as np dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print a['age']import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
print studentimport numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print a
内建类型
‘b’:布尔值
‘i’:符号整数
‘u’:无符号整数
‘f’:浮点
‘c’:复数浮点
‘m’:时间间隔
‘M’:日期时间
‘O’:Python 对象
‘S’, ‘a’:字节串
‘U’:Unicode
‘V’:原始数据(void)
数组属性
ndarray.shape:这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小
reshape:函数来调整数组大小
ndarray.ndim:这一数组属性返回数组的维数
numpy.itemsize:这一数组属性返回数组中每个元素的字节单位长度
numpy.flags:ndarray对象拥有以下属性
- C_CONTIGUOUS © 数组位于单一的、C 风格的连续区段内
- F_CONTIGUOUS (F) 数组位于单一的、Fortran 风格的连续区段内
- OWNDATA (O) 数组的内存从其它对象处借用
- WRITEABLE (W) 数据区域可写入。 将它设置为flase会锁定数据,使其只读
- ALIGNED (A) 数据和任何元素会为硬件适当对齐
- UPDATEIFCOPY (U) 这个数组是另一数组的副本。当这个数组释放时,源数组会由这个数组中的元素更新
数组创建
numpy.empty:它创建指定形状和dtype的未初始化数组
- Shape 空数组的形状,整数或整数元组
- Dtype 所需的输出数组类型,可选
- Order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组
numpy.zeros:返回特定大小,以 0 填充的新数组。
1.Shape 空数组的形状,整数或整数元组
- Dtype 所需的输出数组类型,可选
- Order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组
numpy.ones:返回特定大小,以 1 填充的新数组
- Shape 空数组的形状,整数或整数元组
- Dtype 所需的输出数组类型,可选
- Order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组
numpy.asarray - a 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表
- dtype 通常,输入数据的类型会应用到返回的ndarray
- order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组
numpy.frombuffer
此函数将缓冲区解释为一维数组。 暴露缓冲区接口的任何对象都用作参数来返回ndarray- buffer 任何暴露缓冲区借口的对象
- dtype 返回数组的数据类型,默认为float
- count 需要读取的数据数量,默认为-1,读取所有数据
- offset 需要读取的起始位置,默认为0
numpy.fromiter
此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组 - iterable 任何可迭代对象
- dtype 返回数组的数据类型
- count 需要读取的数据数量,默认为-1,读取所有数据
numpy.arange
这个函数返回ndarray对象,包含给定范围内的等间隔值 - start 范围的起始值,默认为0
- stop 范围的终止值(不包含)
- step 两个值的间隔,默认为1
- dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
numpy.linspace
此函数类似于arange()函数。 在此函数中,指定了范围之间的均匀间隔数量,而不是步长
序号 参数及描述 - start 序列的起始值
- stop 序列的终止值,如果endpoint为true,该值包含于序列中
- num 要生成的等间隔样例数量,默认为50
- endpoint 序列中是否包含stop值,默认为ture
- retstep 如果为true,返回样例,以及连续数字之间的步长
- dtype 输出ndarray的数据类型
numpy.logspace
此函数返回一个ndarray对象,其中包含在对数刻度上均匀分布的数字。 刻度的开始和结束端点是某个底数的幂,通常为 10 - start 起始值是base ** start
- stop 终止值是base ** stop
- num 范围内的数值数量,默认为50
- endpoint 如果为true,终止值包含在输出数组当中
- base 对数空间的底数,默认为10
- dtype 输出数组的数据类型,如果没有提供,则取决于其它参数
有三种可用的索引方法类型: 字段访问,基本切片和高级索引
(start:stop:step)
import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print a[s]