数组概念
NumPy的主要对象就是同类型的多维数据。它是一张表,所有元素(通常是数字)。在NumPy中,维度称为轴,轴的数目为rank。
NumPy的数组的类称为ndarray,别名array。
numpy.array与Python标准库的类array.array不同,后者仅处理一维数组并提供较少功能。
数组属性
ndarray对象的更重要的属性是:
ndarray.ndim
数组的轴(维度,dimensionality)的个数。在Python的世界中,维度的数量被称为rank。
ndarray.shape
数组的维度。这是一个整数的元组,表示每个维度中数组的大小。对于具有n行m列的矩阵,shape将是(n, m)。因此,shape元组的长度就是rank或维度的个数ndim。
ndarray.size
数组元素的总数。这等于shape的元素的乘积。
ndarray.dtype
描述数组中元素类型的对象。可以使用标准Python类型创建或指定dtype。另外NumPy提供了自己的类型。如numpy.int32、numpy.int16和numpy.float64。
ndarray.itemsize(字节数)
数组中每个元素的字节大小。如,元素为float64类型的数组的itemsize为8(=64/8),而complex32类型的数组的comitemsize为4(=32/8)。它等于ndarray.dtype.itemsize。
ndarray.strides
数组步长幅度
ndarray.data
该缓冲区包含数组的实际元素。通常不使用该属性,因为我们将使用索引访问数组中的元素。
ndarray.flags
该属性存放数组自身的相关信息。
数组创建
有多种方法创建数组
numpy.array
使用array函数从常规Python列表或元组中创建数组。得到的数组的类型从序列中元素的类型推导出。
array将序列的序列转换为二维阵列,将序列的序列的序列转换成三维数组,等等。
数组的类型也可以在创建时明确规定
通常,数组的元素最初是未知的,但其大小是已知的。因此,NumPy提供了几个函数来创建具有初始占位符内容的数据。这就减少了数组增长的必要,因为数组增长的操作花费很大。
zeros, ones, empty, random
函数创建一个由0组成的数组,函数ones创建一个由1数组成的数组,函数empty内容是随机的并且取决于存储器的状态,默认情况下,创建的数组dtype为float64。
numpy.arange
为了创建数字序列(有序的),NumPy提供类似于range的函数,返回数组而不是列表。
当arange与浮点参数一起使用时,由于浮点数的精度是有限的,通常不可能预测获得的元素数量。出于该原因,通常最好使用函数linspace,它接收我们想要的元素数量而不是步长作为参数(将区间等分为任意份):
numpy.fromfunction
从给定函数创建一个数组
eye 和 identity
用于创建正方形矩阵,对角线元素都是1,其余为0。
fromfile, tofile
从文件创建
使用数组的方法函数tofile可以方便地将数组中数据以二进制的格式写进文件。tofile输出的数据没有格式,因此用numpy.fromfile读回来的时候需要自己格式化数据。
numpy.load 和 numpy.save
numpy.load和numpy.save函数以NumPy专用的二进制类型保存数据,这两个函数会自动处理元素类型和shape的能信息,使用它们读写数组十分方便,但是numpy.save输出的文件很难和其他语言编写的程序读入:
设置打印内容全部可见
threshold为打印的可见参数数量,默认情况为1000。