随用随记
import numpy as np
属性查询
a1 = np.array([1,2,3,4],dtype=np.complex128)
print(a1)
print("数据类型",type(a1)) #打印数组数据类型
print("数组元素数据类型:",a1.dtype) #打印数组元素数据类型
print("数组元素总数:",a1.size) #打印数组尺寸,即数组元素总数
print("数组形状:",a1.shape) #打印数组形状
print("数组的维度数目",a1.ndim) #打印数组的维度数目
print("数组的行数",np.shape(a1)[0]) #打印数组的行数
print("数组的列数",np.shape(a1)[1]) #打印数组的列数
生成
a = np.zeros(6)#创建长度为6的,元素都是0一维数组
a = np.zeros((2,3))#创建2行3列,元素都是0的二维数组
a = np.ones((2,3))#创建2行3列,元素都是1的二维数组
a = np.empty((2,3)) #创建2行3列,未初始化的二维数组
a = np.arange(6)#创建长度为6的,元素都是0一维数组array([0, 1, 2, 3, 4, 5])
a = np.arange(1,7,1)#结果与np.arange(6)一样。第一,二个参数意思是数值从1〜6,不包括7.第三个参数表步长为1.
a = np.linspace(0,10,7) # 生成首位是0,末位是10,含7个数的等差数列[ 0. 1.66666667 3.33333333 5. 6.66666667 8.33333333 10. ]
a = np.logspace(0,4,5) # 用于生成首位是10**0,末位是10**4,含5个数的等比数列。
a = np.random.randint(1, 100, (3, 3)) # 生成形状为3x3的二维整数数组
矩阵增删改查
增
>>> a = np.array([[1,2],[3,4],[5,6]])
>>> b = np.array([[10,20],[30,40],[50,60]])
>>> np.vstack((a,b))
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[10, 20],
[30, 40],
[50, 60]])
>>> np.hstack((a,b))
array([[ 1, 2, 10, 20],
[ 3, 4, 30, 40],
[ 5, 6, 50, 60]])
加法
>>> a = np.array([[1],[2]])
>>> a
array([[1],
[2]])
>>> b=([[10,20,30]])#生成一个list,注意,不是np.array。
>>> b
[[10, 20, 30]]
>>> a+b
array([[11, 21, 31],
[12, 22, 32]])
>>> c = np.array([10,20,30])
>>> c
array([10, 20, 30])
>>> c.shape
(3,)
>>> a+c
array([[11, 21, 31],
[12, 22, 32]])
查
>>> a
array([[1, 2],
[3, 4],
[5, 6]])
>>> a[0] # array([1, 2])
>>> a[0][1]#2
>>> a[0,1]#2
>>> b = np.arange(6)#array([0, 1, 2, 3, 4, 5])
>>> b[1:3]#右边开区间array([1, 2])
>>> b[:3]#左边默认为 0array([0, 1, 2])
>>> b[3:]#右边默认为元素个数array([3, 4, 5])
>>> b[0:4:2]#下标递增2array([0, 2])
改
>>> a = np.array([[1,2],[3,4],[5,6]])
>>> a[0] = [11,22]#修改第一行数组[1,2]为[11,22]。
>>> a[0][0] = 111#修改第一个元素为111,修改后,第一个元素“1”改为“111”。
>>> a = np.array([[1,2],[3,4],[5,6]])
>>> b = np.array([[10,20],[30,40],[50,60]])
>>> a+b #加法必须在两个相同大小的数组键间运算。
array([[11, 22],
[33, 44],
[55, 66]])
删
>>> a = np.array([[1,2],[3,4],[5,6]])
>>> np.delete(a,1,axis = 0)#删除a的第二行。
array([[1, 2],
[5, 6]])
>>> np.delete(a,(1,2),0)#删除a的第二,三行。
array([[1, 2]])
>>> np.delete(a,1,axis = 1)#删除a的第二列。
array([[1],
[3],
[5]])
多维数组降为1维
.ravel()和.flatten()
a = np.array([[1,2,3],[11,22,33]])
print(a.ravel())
print(a.flatten())
输出都是
[ 1 2 3 11 22 33]
不同点ravel会修改原数组,而flatten不会
矩阵转置
a.T
矩阵乘法
a = np.mat([1,2,3])
b = np.mat([4,5,6])
ret = np.dot(a,b)
求矩阵的特征值和特征向量
a为特征值
b为特征向量
a,b = np.linalg.eig(ret)
matrix 转换为数组
arr = ret.getA()
精度控制
对ret保留小数点后两位
np.around(ret,decimals = 2)
关闭科学技术法
np.set_printoptions(suppress=True)