首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python列表实现向量运算

使用Python列表实现向量运算

作者头像
Python小屋屋主
发布2018-04-16 14:11:38
4K0
发布2018-04-16 14:11:38
举报
文章被收录于专栏:Python小屋Python小屋

在Python中,列表支持与整数的乘法运算,但表示的是列表元素的重复,并生成新列表,如:

>>> [1,2,3]*3

[1, 2, 3, 1, 2, 3, 1, 2, 3] Python列表不支持与整数的加、减、除运算,也不支持列表之间的减、乘、除操作,而加法运算则表示列表元素的合并,并生成新列表,如:

>>> [1,2,3]+[4,5,6]

[1, 2, 3, 4, 5, 6]

对于向量而言,经常需要这样的操作,例如向量所有分量同时加、减、乘、除同一个数,或者向量之间的加、减、乘、除运算,Python列表不支持这样的操作,但可以借助于内置函数或运算符模块来实现,如:

>>> import random

>>> x = [random.randint(1,100) for i in range(10)] #生成10个介于[1,100]之间的随机数

>>> x

[46, 76, 47, 28, 5, 15, 57, 29, 9, 40]

>>> x = list(map(lambda i: i+5, x)) #所有元素同时加5

>>> x

[51, 81, 52, 33, 10, 20, 62, 34, 14, 45]

>>> x = list(map(lambda i: i//5, x)) #所有元素同时对5求整商

>>> x

[10, 16, 10, 6, 2, 4, 12, 6, 2, 9]

>>> x = [random.randint(1,10) for i in range(10)]

>>> x

[2, 2, 9, 6, 7, 9, 2, 1, 2, 7]

>>> y = [random.randint(1,10) for i in range(10)]

>>> y

[8, 1, 9, 7, 1, 5, 8, 4, 1, 9]

>>> import operator

>>> z = sum(map(operator.mul, x, y)) #向量内积

>>> z

278

>>> list(map(operator.add, x, y)) #向量对应元素相加

[10, 3, 18, 13, 8, 14, 10, 5, 3, 16]

>>> list(map(operator.sub, x, y))

[-6, 1, 0, -1, 6, 4, -6, -3, 1, -2]

>>> x = [random.randint(1,10) for i in range(5)]

>>> x

[1, 7, 9, 10, 2]

>>> list(map(operator.add, x, [3 for i in range(len(x))])) #向量所有元素同时加3

[4, 10, 12, 13, 5]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档