创建一个ndarray:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
- object是嵌套的数列
- dtype是数据类型,可选
- copy是对象是否需要复制,默认True
- subok 默认返回一个与基类类型一致的数组(不懂)
- ndmin 指定生成数组的最小维度
最小维度
import numpy as np
a=np.array([1,2,3],ndmin=3)
print(a)
输出
[[[1 2 3]]]
dtype 对象:
numpy.dtype(object, align, copy)
-
object - 要转换为的数据类型对象
-
align - 如果为 true,填充字段使其类似 C 的结构体。
-
copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用
类型字段名可以用于存取实际的 age 列import numpy as np
[10 20 30]
dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print(a['age'])
输出结果
NumPy 数组属性
- ndarray.ndim 秩,即轴的数量或维度的数量
- ndarray.shape 数组的维度,对于矩阵,n 行 m 列
- ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
- 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
略