创建一个ndarray:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  1. object是嵌套的数列
  2. dtype是数据类型,可选
  3. copy是对象是否需要复制,默认True
  4. subok 默认返回一个与基类类型一致的数组(不懂)
  5. ndmin 指定生成数组的最小维度

最小维度
import numpy as np
a=np.array([1,2,3],ndmin=3)
print(a)
输出

[[[1 2 3]]]

dtype 对象:

numpy.dtype(object, align, copy)
  1. object - 要转换为的数据类型对象

  2. align - 如果为 true,填充字段使其类似 C 的结构体。

  3. copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用
    类型字段名可以用于存取实际的 age 列

    import numpy as np
    dt = np.dtype([('age',np.int8)])
    a = np.array([(10,),(20,),(30,)], dtype = dt)
    print(a['age'])
    输出结果

    [10 20 30]

NumPy 数组属性

  1. ndarray.ndim 秩,即轴的数量或维度的数量
  2. ndarray.shape 数组的维度,对于矩阵,n 行 m 列
  3. ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
  4. ndarray.dtype ndarray 对象的元素类型

NumPy 创建数组

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

numpy.empty(shape, dtype = float, order = 'C')

创建指定大小的数组,数组元素以 0 来填充:

numpy.zeros(shape, dtype = float, order = 'C')
例子
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])  
print(z)
输出
[[(0, 0) (0, 0)]
 [(0, 0) (0, 0)]]

创建指定形状的数组,数组元素以 1 来填充:

numpy.ones(shape, dtype = None, order = 'C')

NumPy 从已有的数组创建数组

numpy.asarray(a, dtype = None, order = None)
  • 将列表转换为 ndarray
  • 将元组转换为 ndarray
  • 将元组列表转换为 ndarray

NumPy 从数值范围创建数组

numpy.arange(start, stop, step, dtype)

start 起始值,默认为0
stop 终止值(不包含)
step 步长,默认为1

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数 描述
start 序列的起始值
stop 序列的终止值,如果endpoint为true,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype ndarray 的数据类型


NumPy 切片和索引

例1
import numpy as np
a = np.arange(10)
s = slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])
输出

[2  4  6]

例2

import numpy as np 

x = np.array([[  0,  1,  2],[  3,  4,  5],[  6,  7,  8],[  9,  10,  11]])  
print ('我们的数组是:' )
print (x)
print ('\n')
rows = np.array([[0,0],[3,3]]) 
cols = np.array([[0,2],[0,2]]) 
y = x[rows,cols]  
print  ('这个数组的四个角元素是:')
print (y)

输出

我们的数组是:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]


这个数组的四个角元素是:
[[ 0  2]
 [ 9 11]]

Numpy 数组操作

reshape 不改变数据的条件下修改形状
flat 数组元素迭代器
flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组
ravel 返回展开数组

NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。
运算应当符合规则


NumPy 排序、条件刷选函数

numpy.sort(a, axis, kind, order)

a: 要排序的数组
axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
kind: 默认为'quicksort'(快速排序)

numpy.argsort()

numpy.argsort() 函数返回的是数组值从小到大的索引值。


NumPy 矩阵库(Matrix) NumPy Matplotlib