如何解决 NumPy 无法计算其中一个 5 元素列表的标准差的问题

在这里插入图片描述

  1. 问题背景

    • 在使用 NumPy 计算统计结果时发现,NumPy 能够接受原始数据列表来计算标准差,却无法接受经过计算后的结果列表。
    • 尝试将 std(f10) 替换为 std(solf10),但引发了错误:AttributeError: 'Float' object has no attribute 'sqrt'
    • 使用 print(type(f10), type(solf10)) 检查数据结构,发现它们都是 <class 'list'> 类型,推测数据结构并非导致问题的根源。
  2. 解决方案

    • 答案 1 指出问题在于 solf10 列表中包含的元素是 sympyFloat 对象,而非 NumPy 可以识别的 C double 对象。因此,需要将这些 sympy 对象显式转换为真正的浮点数。
    • 答案 2 指出了 m10kg 列表中元素的类型问题。由于整数除法会产生整数结果,导致 m10kg 中的元素全部为 1,而不是预期的浮点数。将除法运算符更改为浮点除法 x/1000.0 可以解决此问题。

代码示例

# 导入必要的库
from sympy import *
from numpy import *
import matplotlib.pyplot as plt

# 常量
g = 9.81

# 给定数据
l1, l2, l3 = 0.023, 0.07492, 0.0325
mw = 0.220
w = g*mw

# 收集的数据
m10 = [1540, 1500, 1400, 1400, 1670]
m10kg = [x / 1000.0 for x in m10]  # 将整数除法改为浮点除法

m12 = [1220, 1300, 1200, 1050, 900]
m12kg = [x / 1000.0 for x in m12]

m15 = [770, 790, 740, 760, 750]
m15kg = [x / 1000.0 for x in m15]

# 计算从质量到重力的转换,单位为牛顿
f10, f12, f15 = [x * g for x in m10kg], [y * g for y in m12kg], [z * g for z in m15kg]

# 计算数据的平均值
f10avg, f12avg, f15avg = mean(f10), mean(f12), mean(f15)

# 初始化符号变量
fr, my = symbols('fr, my')

# 关于原点的力矩方程
sumMoments = Eq(fr, (w * l2 + my * (l1 + l2)) / (l1 + l2 + l3))

# 从方程中解出作用在吸管上的牛顿力
solf10 = [solve(sumMoments.subs(my, x)) for x in f10]
solf12 = [solve(sumMoments.subs(my, x)) for x in f12]
solf15 = [solve(sumMoments.subs(my, x)) for x in f15]

# 将列表中的子列表展平
solf10 = [x for sub1 in solf10 for x in sub1]
solf12 = [x for sub1 in solf12 for x in sub1]
solf15 = [x for sub1 in solf15 for x in sub1]

# 计算 `solf10`、`solf12`、`solf15` 的平均值
solf10avg, solf12avg, solf15avg = mean(solf10), mean(solf12), mean(solf15)

# 绘图部分
# ------------------

# X 位置
x = [10, 12, 15]

# 注释样式
# plt.xkcd()

fig = plt.figure()
ax = fig.add_subplot(111)

offset = .5

# 绘制误差线图
ax.errorbar(x, [solf10avg, solf12avg, solf15avg], yerr=[std(f10), std(f12), std(f15)], lw=1.5)

# 添加文本标签
plt.text(x[0], solf10avg + offset, r'  $F_{10 cm}=\ %.3f \ N$' % (solf10avg), fontsize=18)
plt.text(x[2], solf15avg + offset, r'  $F_{15 cm}=\ %.3f \ N$' % (solf15avg), fontsize=18)
plt.text(x[1], solf12avg + offset, r'  $F_{12 cm}=\ %.3f \ N$' % (solf12avg), fontsize=18)

# 设置坐标轴范围
plt.xlim([9, 20])
plt.ylim([0, 20])

# 设置标题、标签和刻度
plt.title("Straw Yield Point Test", fontsize=24)
plt.xlabel("Length (cm)", fontsize=18)
plt.ylabel("Axial Force on Straw\n at Yield (N)", fontsize=18)

plt.minorticks_on()
plt.grid(which="both")

# 保存图像
# plt.savefig('fig_1.pdf')

# 显示图像
plt.show()

通过正确的数据类型转换,上述代码将能够在 solf10solf12solf15 上计算标准差,并在最后生成所需的图表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/722012.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue页面前端初始化表格数据时报错TypeError: data.reduce is not a function

这是初始化表格数据时报的错 。 [Vue warn]: Invalid prop: type check failed for prop "data". Expected Array, got Object found in---> <ElTable> at packages/table/src/table.vue<List> at src/views/org/List.vue<Catalogue> at src/v…

Java毕业设计 基于SSM助学贷款管理系统

Java毕业设计 基于SSM助学贷款管理系统 SSM 助学贷款管理系统 功能介绍 学生&#xff1a;登录 修改密码 学生信息 贷款项目信息 申请贷款 留言信息 公告 学校负责人&#xff1a;登录 修改密码 学生管理 学校负责人信息 贷款项目 贷款申请审批 留言信息 公告 银行负责人&…

媒体邀约人物访谈,如何有效提升品牌影响力?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 品牌选择媒体邀约人物专访的形式来背书&#xff0c;可以带来以下好处&#xff1a; 增强品牌权威性&#xff1a;通过知名媒体的专访&#xff0c;品牌可以借助媒体的权威性来提升自身的信誉…

“运动过量”?想多了,普通骑友没那能力和意志力,好好骑车吧

最近听到“运动过量”这个词挺多的&#xff0c;身为骑行爱好者的校长&#xff0c;感觉又好笑又无奈&#xff0c;所以想写点东西&#xff0c;这篇文通过分析普通骑友的运动习惯、能力和意志力&#xff0c;探讨了“运动过量”这一概念在骑行领域中的适用性。文章指出&#xff0c;…

vue2实现一个简易实用的日历(可特殊标记多个日期)

效果如下&#xff1a; <template><div class"calendar"><div class"header"><button click"previousMonth"><</button><h2>{{ currentYear }}-{{ currentMonth }} </h2><button click"nex…

会员收银系统源码

会员营销是一种基于会员管理的营销方法&#xff0c;通过提供会员专属的优惠、服务和体验&#xff0c;吸引和保留客户&#xff0c;促进客户的持续消费。与直接打折相比&#xff0c;会员营销具有以下优势&#xff1a; 1.增强客户忠诚度 会员营销可以通过提供个性化的服务和专属…

【面试八股文】谈一谈你对TCP和UDP的区别是怎么理解的?

文章目录 一、TCP和UDP的区别,使用打电话和写信来类比1.1 TCP就像打电话1.2 UDP就像写信1.3 总结二、专业的讲解`TCP`和`UDP`的区别2.1 TCP和UDP的概念2.2 是否面向连接2.3 从连接对象个数来看2.3.1 UDP:UDP支持一对一、一对多、多对一、多对多的通信。2.3.3 TCP:TCP是一对一…

快速了解接口测试

1、定义 什么是接口测试&#xff1f; 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 接口测…

第一次创建next.js项目

当前环境和版本&#xff1a; 创建命令&#xff1a; npx create-next-applatest test-nextjs 下载过程&#xff1a; 虽然下载过程有warning&#xff0c;但是还是下载成功了 node.js稳定版本号&#xff1a;http://t.csdnimg.cn/WokUx 因为它前面warn说要> 18.17.0 所以下载了…

正则表达式常用表示

视频教程&#xff1a;10分钟快速掌握正则表达式 正则表达式在线测试工具&#xff08;亲测好用&#xff09;&#xff1a;测试工具 正则表达式常用表示 限定符 a*&#xff1a;a出现0次或多次a&#xff1a;a出现1次或多次a?&#xff1a;a出现0次或1次a{6}&#xff1a;a出现6次a…

如何避免WordPress更新导致的网站崩溃

我查阅过很多关于如何确保 WordPress 网站安全的建议&#xff0c;其中最常提到的就是及时更新 WordPress。 我按照建议更新了网站&#xff0c;结果却导致网站崩溃。 网站的瘫痪后&#xff0c;我甚至连WordPress仪表板都无法登陆&#xff0c;只留下了一条让我困惑的错误信息&a…

mysql数据库中触发器的使用

一、修改分隔符号 delimiter $$或者是//或者~~都行 二、创建触发器函数名称 create trigger 函数名 三、什么样的操作出发&#xff0c;操作那个表 after&#xff1a;.....之后触发 befor&#xff1a;.....之前触发 insert&#xff1a; 插入触发 update&#xff1a;修改被触发 d…

【Java】已解决java.lang.UnsupportedOperationException异常

文章目录 问题背景可能出错的原因错误代码示例正确代码示例注意事项 已解决java.lang.UnsupportedOperationException异常 在Java编程中&#xff0c;java.lang.UnsupportedOperationException是一个运行时异常&#xff0c;通常表示尝试执行一个不支持的操作。这种异常经常发生…

以太坊智能合约不能调用:一定注意智能合约地址,每次部署地址都会变化;nonce值 什么作用,是什么;在交易中调用智能合约添加附加信息

目录 以太坊智能合约不能调用 一定注意智能合约地址,每次部署地址都会变化 Transaction must include these fields: %r" % missing_keys 缺少nonce nonce值 什么作用,是什么 在交易中调用智能合约添加附加信息 1. 定义智能合约 2. 部署并调用智能合约 注意事项…

集合进阶:增强for循环和lambda表达式

一.增强for遍历 1.增强for的底层是迭代器,为了简化迭代器的代码书写的。 2.他是JDK5之后出现的,其内部原理就是一个lterrator迭代器。 3.所有的单列集合和数组才能用增强for进行遍历 二.格式 for(元素的数据类型 变量名;数组或者集合){} 三.代码 Collection<String>…

聆听你的声音 ,华为云Astro Zero邀您参加产品满意度调查

亲爱的开发者 几分钟时间&#xff0c;大大的影响&#xff01; 邀您参加Astro Zero满意度调查 助我们优化您的开发体验。 为什么您应该参与&#xff1f; 塑造产品&#xff1a;直接影响Astro Zero的未来改进&#xff01; 聆听声音&#xff1a;这是一个让您的声音被听见的机…

Contact-Rich Robot ManipulationTask:grinding and Peg-in-Hole Assembly

Contact-Rich Robot Manipulation Task涵盖了多种需要机器人与环境或物体进行密切接触的复杂操作。 1. Grinding&#xff08;研磨&#xff09; 任务描述&#xff1a;研磨是制造业中常见的加工过程&#xff0c;涉及使用研磨工具去除材料表面的一层或多层&#xff0c;以达到预定…

企业常用的五大源代码加密软件

安秉源代码加密软件&#xff1a; 专注于源代码文件的加密&#xff0c;对编译后的文件不加密。 采用版本管理服务器密文保存方式&#xff0c;不影响员工正常开发流程。 有效防止代码从版本管理服务器下载和上传到私有仓库。 适用于企业环境&#xff0c;保护源代码不被泄露。EXEC…

什么是拷贝?我:Ctrl + C ...

前言 当谈及拷贝&#xff0c;你的第一印象会不会和我一样&#xff0c;ctrl c ctrl v ... &#xff1b;虽然效果和拷贝是一样的&#xff0c;但是你知道拷贝的原理以及它的实现方法吗&#xff1f;今天就让我们一起探究一下拷贝中深藏的知识点吧。 拷贝 首先来看下面一段代码…

Maya 白膜渲染简单教程

零基础渲染小白&#xff0c;没关系&#xff0c;一篇超简单教程带你学会渲染白膜。 先打开Maya&#xff0c;看看面板有没有渲染器&#xff0c;这里以Arnold为主。 要是没有这个&#xff0c;就去找插件管理器&#xff0c; Arnold的是mtoa&#xff0c;在搜索栏搜&#xff0c;然后把…