作者TuCH (谬客)
看板Python
标题Re: [问题] 多变量函数值转成矩阵
时间Fri Oct 5 16:26:55 2018
※ 引述《sssh (叫我松高魂 ~~)》之铭言:
: 想请问一下,这几天碰到一个问题,
: 有两个相同大小(3*30)的矩阵B,C
: 我想要弄出一个新的矩阵D
: 新矩阵里面的元素是给定两矩阵中相对应位置元素取大值
: 於是我写了以下
: for i in range(2):
: for j in range(29):
: def D(i,j):
: if (B[i][j]<C[i][j]):
: return C[i][j]
: else:
: return B[i][j]
: 但是问题来了........怎麽把D(i,j)变成D[i][j]啊@@
: 怎麽写都出现语法错误XDDDDDD
: 小弟在此先感谢各位大德XD
你的写法
import numpy as np
B = np.random.random([3,30])
C = np.random.random([3,30])
D = np.zeros([3,30])
for i in range(3):
for j in range(30):
if (B[i][j]<C[i][j]):
D[i][j]=C[i][j]
else:
D[i][j]=B[i][j]
另外一种
import numpy as np
B = np.random.random([3,30])
C = np.random.random([3,30])
B[B < C]=0
C[B != 0] =0
D = B+C
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.65.79
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1538728018.A.20A.html
1F:→ sssh: !!原来重新定义一个D矩阵再代换数字!!我倒没想到这个 10/05 17:01
2F:→ sssh: 感谢感谢! 10/05 17:01
3F:推 iphone2003: 第二种可能会有一点小bug哦,假设B某个位子的值是0,C 10/05 17:06
4F:→ iphone2003: 是-5,这样结果会是-5,但应该要是0才对 10/05 17:06
5F:推 iphone2003: 改成c[c<=b]=0应该就没问题了 10/05 17:12
6F:→ tiefblau: 都用numpy了搞成这样是在想什麽... np.maximum(B,C) 10/05 17:49
7F:推 sssh: 哈哈哈哈哈 啊老苏没教啊XD 我就只能用我手上有的工具XDDD 10/05 23:09
8F:→ yougigun: 哈 numpy 有很多被包起来好用的语法 但没看过就是拿不出 10/07 17:36
9F:→ yougigun: 来用 10/07 17:36