|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是一段关于广播broadcast的代码
import numpy as np
a = np.array([[1], [2], [3]])
b = np.array([4, 5, 6])
# 对b广播a
d = np.broadcast(a,b)
#d它拥有 iterator 属性
r,c = d.iters
print (next(r), next(c))
print (next(r), next(c))
# 使用broadcast将a与b相加
e = np.broadcast(a,b)
f=np.empty(e.shape)
f.flat=[x+y for (x,y) in e]
print(f)
print(a+b)
结果#对b广播a
1 6
2 4
#f数组
[[5. 6. 7.]
[6. 7. 8.]
[7. 8. 9.]]
#a+b
[[5 6 7]
[6 7 8]
[7 8 9]]
我的理解:a和b广播之后,d为[[5,6,7],[6,7,8],[7,8,9]],这里暂时不知道d的数据类型,因为我print(d)的结果是<numpy.broadcast object at 0x00000215C0183F00>
1.以上代码中d的数据类型是什么呢?
2.r,c = d.iters r,s是iters返回的迭代器,为什么之后的next(r), next(c)值会不同呢?且1,6,2,4如何得出我想不明白
3.f.flat=[x+y for (x,y) in e]这个段代码没看懂
望指点 |
|