numpy基础,线性代数

numpy的使用

numpy是所有Python科学计算与数据分析库的基础,Scipy与Pandas库都依赖于numpy。

numpy的基本类型是多维的数组ndarray,一般常用的矩阵matrix可以看作是ndarray的子类,可以通过ndarray的一些属性来更加深入的了解一个ndarray的数据结构。

print(' 维度数:', arr.ndim)
print(' 每维的形状:', arr.shape)
print(' 元素个数:', arr.size)
print(' 数据类型:', arr.dtye)
print(' 每个元素占的字节:', arr.itemsize)

索引与切片

对于一维数组ten = np.arrange(10)

ten				#[0 1 2 3 4 5 6 7 8 9]
ten[2]  		#3个元素2
ten[-2]			#倒数第2个元素,最后一个元素下标为-1
ten[2:5]		#区间切片,前闭后开,默认步长为1,结果为[2 3 4] 
ten[:-7]		#区间切片,从后向前(后开区间),指定了结束的位置,结果为[0 1 2]
ten[1:7:2]		#步长为2,结果为[1 3 5]
ten[-1::-1]		#步长为负时,从后向前,结果为[9 8 7 6 5 4 3 2 1 0]
ten[0, 2, 3]	#使用数组作为索引,取多个元素

对于二维数组ten.shape = (2, 5)

ten				#[[0 1 2 3 4] [5 6 7 8 9]]
ten[1, 3]		#二维数组索引单个元素,第2行第4列的元素
ten[0]			#1行的所有元素,相当于ten[0, :]
ten[1:, :]		#除第1行外的所有元素
ten[:, ::2]		#所有行,间隔一列选取数据
ten[:, [0,3,1]]	#所有行,用数组选择指定列

矩阵运算

在numpy中,惩罚有两种不同的叫法。

第一种是数量乘法,即两个相同shape的矩阵对应元素相乘np.multiply(arr, arr2);另外一种是点乘(dot 乘法),即线代中矩阵的相乘arr.dot(arr2.T)

numpy中reshape函数

  1. mat (or array).reshape(m, -1)
    必须是矩阵格式或者数组格式,才能使用 .reshape(m, -1) 函数, 表示将此矩阵或者数组重组,以 m行d列的形式表示。1的作用就在于: 自动计算d:d=数组或者矩阵里面所有的元素个数/c, d必须是整数,不然报错)
arr.shape			# (a,b)
arr.reshape(m,-1)	#改变维度为m行、d列 (-1表示列数自动计算,d= a*b /m 
arr.reshape(-1,m)	#改变维度为d行、m列 (-1表示行数自动计算,d= a*b /m 
arr=np.arange(16).reshape(2,8)
arr
'''
out:
array([[ 0,  1,  2,  3,  4,  5,  6,  7],
       [ 8,  9, 10, 11, 12, 13, 14, 15]])
'''
 
arr.reshape(4,-1) #将arr变成4行的格式,列数自动计算的(c=4, d=16/4=4)
'''
out:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
''' 
arr.reshape(8,-1) #将arr变成8行的格式,列数自动计算的(c=8, d=16/8=2)
'''
out:
array([[ 0,  1],
       [ 2,  3],
       [ 4,  5],
       [ 6,  7],
       [ 8,  9],
       [10, 11],
       [12, 13],
       [14, 15]])
''' 
arr.reshape(10,-1) #将arr变成10行的格式,列数自动计算的(c=10, d=16/10=1.6 != Int)
'''
out:
ValueError: cannot reshape array of size 16 into shape (10,newaxis)
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值