本篇主要内容:
1.数组改变形状的方式:shape方式
arr = np.random.randint(1,9,size=(4,4))
a = arr.reshape(-1,2)#-1表示自动计算该轴元素的长度
b = arr.reshape(2,-1)
print(a)
print(b)
a.shape = (-1,4)
b.shape= (4,-1)
print(a)
print(b)
reshape方式
arr = np.random.randint(1,9,size=(4,4))
print(arr)
a = arr.reshape(-1,2)#-1表示自动计算该轴元素的长度
b = arr.reshape(2,-1)
print(a)
print(b)
数组的运算:
1、数组不用循环即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化,即用数组表达式代替循环的做法。 2、矢量化数组运算性能比纯Python方式快上一两个数据级。 3、大小相等的两个数组之间的任何算术运算都会将其运算应用到元素级上的操作。 4、元素级操作:在NumPy中,大小相等的数组之间的运算,为元素级运算,即只用于位置相同的元素之间,所得的运算结果组成一个新的数组,运算结果的位置跟操作数位置相同。 数组与标量的运算
arr = np.arange(1,12,2).reshape(2,3)
print(arr)
print(arr+1)
print(arr-3)
print(arr*2)
print(arr/4)
print(arr**2)
矩阵与矩阵的运算: arr1 = np.random.randint(2,10,size=(2,3))
print(arr1)
arr+arr1
print(arr1+arr)
print(arr1-arr)
print(arr1*arr)
print(arr1/arr)
数组的矩阵运算: #这里的数组的矩阵运算是和大学的矩阵运算是相同的
a = np.array([1,2,3,4])
b = np.array([[10,20,30,40],[1,2,3,4,]])
c = a * b
print(c)
对于二维的矩阵相乘,和大学学的原理相同 a = np.random.randint(0,8,size=(2,4))
b = np.random.rand(8).reshape(2,4)
print(a)
print(b)
c = a*b
print(c)
对于numpy的dot相乘,即点乘,这里有篇我的总结:https://www.lijl888.com/archives/1404
a = np.array([2,3,4])
b = np.array([1,2,4])
np.dot(a,b) 24
对于二维的:
#对于二维的和矩阵的乘积相同
a = np.random.randint(0,8,size=(2,4))
b = np.random.randint(4,16,size=(4,2))
print(a)
print(b)
a.dot(b)
Numpy索引和切片
|