鱼C论坛

 找回密码
 立即注册
查看: 2306|回复: 0

关于numpy.broadcast()的返回值问等一系列问题

[复制链接]
发表于 2022-8-5 00:54:11 | 显示全部楼层 |阅读模式

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

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

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]这个段代码没看懂
望指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 12:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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