Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

numpy的基本操作

0
回复
5282
查看
[复制链接]
已绑定手机

49

主题

4

回帖

1228

积分

管理员

积分
1228
QQ
来源: 2020-6-26 16:53:06 显示全部楼层 |阅读模式
本篇主要内容:
  • 数据的形状的改变方式
  • 数组的运算
  • 数组的索引与切片


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)
xinxi.jpg

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)
xinxi.jpg

数组的运算:

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)
xinxi.jpg

矩阵与矩阵的运算:
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)
xinxi.jpg

数组的矩阵运算:
#这里的数组的矩阵运算是和大学的矩阵运算是相同的

a = np.array([1,2,3,4])

b = np.array([[10,20,30,40],[1,2,3,4,]])

c = a * b

print(c)
xinxi.jpg

对于二维的矩阵相乘,和大学学的原理相同
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)
xinxi.jpg


对于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)
xinxi.jpg

Numpy索引和切片





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
电话咨询: 135xxxxxxx
关注微信