Numpy的主要对象是同质的多维数组。Numpy中的元素放在[]中,其中的元素通常都是数字,并且是同样的类型,由一个正整数元组进行索引。Numpy中,维度被称为轴。例如对于[1, 2, 1]有一个轴,并且长度为3。而[[ 1., 0., 0.], [ 0., 1., 2.]]则有两个轴,第一个轴的长度为2,第二个轴的长度为3。Numpy数组类的名字叫做ndarray,经常简称为array。要注意将numpy.array与标准Python库中的array.array区分开,后者只处理一维数组,并且功能简单。ndarray,⼀个具有⽮量算术运算和复杂⼴播能⼒的快速且节
省空间的多维数组。C、C++、Fortran等语⾔编写的代码的APInumpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) # np.array的定义各参数的含义:
True,对象被复制。ndarray属性
import numpy as np # 国际惯例的导入方式# 一维数组
data1 = [4, 5, 9, 1]
arr1 = np.array(data1)
arr1array([4, 5, 9, 1])# 二维数组
data2 = [[3,41,6], [9,1,4]]
arr2 = np.array(data2)
arr2array([[ 3, 41, 6],
[ 9, 1, 4]])np.array([9,'xiaoming',0]) # 数值型自动转成字符串array(['9', 'xiaoming', '0'], dtype='<U11')# 全0
np.zeros(5) # 全0向量array([0., 0., 0., 0., 0.])# 全0
arrZero = np.zeros((4,3)) # shape形状必须括起来
arrZeroarray([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])np.zeros((2,4,3))array([[[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]]])np.empty((2, 3, 2)) # 尽量少用empty方法array([[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]]])# 全1矩阵
arrOne = np.ones((4,3)) # shape 形状必须括起来
arrOnearray([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])类似Python中的range函数
a = np.arange(15).reshape(3, 5) # 创建3行5列的数组
aarray([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])对角线上全是1,其余是0
np.eye(5) # 创建单位矩阵
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])指定生成某个数的数组
np.full((3,4),5) # 创建3*4的全部是5的数组
array([[5, 5, 5, 5],
[5, 5, 5, 5],
[5, 5, 5, 5]])在指定的范围内生成数组,endpoint表示包含尾部的元素
a = np.linspace(2, 8, 10, endpoint=True, retstep=True, dtype=float) # 自动返回步长
a
# result
(array([2. , 2.66666667, 3.33333333, 4. , 4.66666667,
5.33333333, 6. , 6.66666667, 7.33333333, 8. ]),
0.6666666666666666)改成数组的形状;当参数中出现-1的时候,表示系统判断shape中的另一个参数
a = np.floor(10*np.random.random((3, 4))) # 先用random函数随机生成3*4的数组;再每个元素乘以10;最后floor取整
a.ravel() # 平铺成一维数组
a.reshape(6,2) # 变成6行2列,原来的数组a是不变的
np.reshape(a, (6,2)) # 等价同上
a.reshape(4, -1) # 系统自动判断为4行3列大部分功能和使用与reshape函数相同

a.shape # 数组形状,即几行几列
(3, 5)a.ndim # 数组的轴数,维度称为轴
2a.dtype.name # 数组中元素的数据类型
'int32'a.size # 数组中所有元素的个数
15type(a) # 查看类型
numpy.ndarrayb = np.array([1, 2, 3, 4]) # 生成一个数组,中括号的元素看成一个整体
barray([1, 2, 3, 4])c = np.array([[1, 2], [3, 4], [5, 6]]) # 注意:有两层中括号[]
carray([[1, 2],
[3, 4],
[5, 6]])# 数据类型转换
int_array = np.arange(4) # 创建0到3的一维数组
old = np.array([3.4, 2.4, 11.3])
new = old.astype(int_array.dtype) # 转换成整数型dtype
old
[out]:array([ 3.4, 2.4, 11.3])np.pi # pi
np.e # e