为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中使用 for 在列表中附加浮点数

在 Python 中使用 for 在列表中附加浮点数

哔哔one 2022-10-11 10:11:06
我正在尝试构建一个函数,将每个向量的 itens 相乘并返回一个带有这些数字的向量,但是我在追加乘法时遇到了问题。例子:-输入:vec1 = np.array([-2.0, -1.0, 0.0, 1.0, 2.0])vec2 = np.array([-16.2, 87.8, -7.199999999999999, -52.2, -12.2])list_mult(vec1,vec2)-输出 :[ 32.4 -87.8  -0.  -52.2 -24.4]- 这是我的代码和输出错误:import numpy as npdef list_mult(v1,v2):    result = list()    for i in v1:         for j in v2:            result.append(v1[i] * v2[j])    return result输出:      4     for i in v1:      5         for j in v2:----> 6             result.append(v1[i] * v2[j])      7     return resultTypeError: list indices must be integers or slices, not numpy.float64```
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您正在迭代元素,但在访问时您将元素作为索引传递。所以你得到了错误。


更改以下行


 In [38]: import numpy as np

    ...:

    ...: def list_mult(v1,v2):

    ...:     result = list()

    ...:     for idx1,i in enumerate(v1):

    ...:         for idx2,j in enumerate(v2):

    ...:             if (idx1 == idx2):

    ...:                 result.append(i * j)

    ...:     return result

    ...:

    ...:


In [39]: list_mult(vec1,vec2)

Out[39]: [32.4, -87.8, -0.0, -52.2, -24.4]

更优雅的解决方案是使用np.multiplynumpy 包的功能。


In [37]: np.multiply(vec1,vec2)

Out[37]: array([ 32.4, -87.8,  -0. , -52.2, -24.4])


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号