鱼C论坛

 找回密码
 立即注册
查看: 12619|回复: 143

[技术交流] Python:每日一题 11

  [复制链接]
发表于 2017-3-29 17:38:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
  1. X = [[12,7,3],
  2.     [4,5,6],
  3.     [7,8,9]]

  4. Y = [[5,8,1],
  5.     [6,7,3],
  6.     [4,5,9]]
复制代码

程序分析:创建一个新的 3 行 3 列的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。
游客,如果您要查看本帖隐藏内容请回复


欢迎小伙伴们,一起答题!
如果你有能力,欢迎加入我们!
已经上车老司机:@ooxx7788 @lumber2388779   
点我上车

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-29 17:39:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-29 18:16:51 From FishC Mobile | 显示全部楼层
本帖最后由 ooxx7788 于 2017-3-29 19:39 编辑
  1. import numpy as np

  2. x = np.array([[12, 7, 3], [4, 5, 6], [7, 8, 9]])
  3. y = np.array([[5, 8, 1], [6, 7, 3], [4, 5, 9]])
  4. print(x + y)
复制代码


手机现学现卖写一个,回去再看对不对。

输出
  1. [[17 15  4]
  2. [10 12  9]
  3. [11 13 18]]
复制代码

增加点不一样的方法嘛,你都把循环写了。虽然会造车轮子很重要,但是会用车轮子也很重要。

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
新手·ing + 2 + 2 竟然使用numpy模块。。你你你

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2017-3-29 23:07:24 | 显示全部楼层
  1. x = [[12,7,3],
  2.     [4,5,6],
  3.     [7,8,9]]

  4. y = [[5,8,1],
  5.     [6,7,3],
  6.     [4,5,9]]

  7. z = [i + j for i, j in zip(sum(x, []), sum (y, []))]
  8. z = [z[0:3], z[3:6], z[6:9]]
复制代码

  1. >>> z
  2. [[17, 15, 4], [10, 12, 9], [11, 13, 18]]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2017-3-30 09:56:47 | 显示全部楼层
  1. def test(X,Y):
  2.   if len(X) == len(Y):
  3.     newlist = []
  4.     for i in range(len(X)):
  5.       eachx = X[i]
  6.       eachy = Y[i]
  7.       eachnew = []
  8.       for a,b in zip(eachx,eachy):
  9.         num = a + b
  10.         eachnew.append(num)
  11.       newlist.append(eachnew)
  12.     return newlist
  13.   else:
  14.     print("X,Y数据不对等,无法计算")
复制代码

  1. print(test(X,Y))
  2. >>>[[17, 15, 4], [10, 12, 9], [11, 13, 18]]
复制代码

写了一个函数,可以计算任何行列的矩阵求和

没办法,谁叫我不会用numpy呢,只能用最原始的for循环了,也正好符合题目要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-3-30 10:17:22 From FishC Mobile | 显示全部楼层
答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-30 11:07:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-30 11:42:51 | 显示全部楼层
6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-30 11:53:28 | 显示全部楼层
  1. X = [[12,7,3],
  2.     [4,5,6],
  3.     [7,8,9]]
  4. Y = [[5,8,1],
  5.     [6,7,3],
  6.     [4,5,9]]
  7. XY=[]
  8. for i in range(len(X)):
  9.     XY.append([])
  10.     for j in range(len(X[i])):
  11.         XY[i].append(X[i][j]+Y[i][j])
  12. print(XY)
复制代码

>>>
[[17, 15, 4], [10, 12, 9], [11, 13, 18]]

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-3-30 12:55:15 | 显示全部楼层
444444444
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-30 13:01:27 | 显示全部楼层
拉闸!写了个和楼主一模一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

 楼主| 发表于 2017-3-30 16:47:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-30 16:50:03 | 显示全部楼层
感谢大家支持!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 08:44:06 | 显示全部楼层
看看,简单结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 09:47:00 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 09:58:01 | 显示全部楼层
  1. for i in range(len(x)):
  2.       for j in range(len(x[i])):
  3.                 z[i][j] = x[i][j] + y[i][j]

复制代码

感觉写成len(x)更好一点,结果是一样的

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-3-31 09:59:21 | 显示全部楼层
Bruin 发表于 2017-3-31 09:58
感觉写成len(x)更好一点,结果是一样的


为啥x【i】不会显示【i】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 18:57:55 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-31 19:24:30 | 显示全部楼层

欢迎一起做题
有鱼币奖励~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-14 23:05:00 | 显示全部楼层
x=[[12,7,3],[4,5,6],[7,8,9]]
y=[[5,8,1],[6,7,3],[4,5,9]]
z=[]
for i in range(3):
for j in range(3):
        z.append(x[i][j]+y[i][j])
print(z)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 23:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表