Python3数据科学包系列(二):数据分析实战


Python3中类的高级语法及实战

Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案

Python3数据科学包系列(一):数据分析实战

Python3数据科学包系列(二):数据分析实战




一:通过read_table函数读取数据创建(DataFrame)数据框


# -*- coding:utf-8 -*-from pandas import read_table'''从文件(rz.txt)读取数据创建pandas的DataFrame数据框
'''
print("""注意: (1)txt文本文件要保存成UTF-8格式才不会报错(2)查看数据框dataFrame前n项数据使用dataFrame.head(n);后m项数据用dataFrame.tail(m);默认均是5
""")
dataFrame = read_table(r'./file/rz.txt', sep="\t")
print("查看前5项数据: ", dataFrame.head(5))print()
print("查看后5项数据: ", dataFrame.tail(5))
print()
print("查看所有数据")
print(dataFrame)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByTXTFileCreatePandasOfDataFrame.py 

    注意: 
        (1)txt文本文件要保存成UTF-8格式才不会报错
        (2)查看数据框dataFrame前n项数据使用dataFrame.head(n);后m项数据用dataFrame.tail(m);默认均是5

查看前5项数据:             学号        班级  姓名 性别  英语  体育  军训  数分  高代    解几
0  2308024241  23080242  成龙  男  76  78  77  40  23  60.0
1  2308024244  23080242  周怡  女  66  91  75  47  47  44.0
2  2308024251  23080242  张波  男  85  81  75  45  45  60.0
3  2308024249  23080242  朱浩  男  65  50  80  72  62  71.0
4  2308024219  23080242  封印  女  73  88  92  61  47  46.0

查看后5项数据:              学号        班级   姓名 性别  英语  体育  军训  数分  高代    解几
16  2308024433  23080244  李大强  男  79  76  77  78  70   NaN
17  2308024428  23080244  李侧通  男  64  96  91  69  60   NaN
18  2308024402  23080244   王慧  女  73  74  93  70  71  75.0
19  2308024422  23080244  李晓亮  男  85  60  85  72  72   NaN
20  2308024201  23080242   迟培  男  60  50  89  71  76  71.0

查看所有数据
            学号        班级   姓名 性别  英语  体育  军训  数分  高代    解几
0   2308024241  23080242   成龙  男  76  78  77  40  23  60.0
1   2308024244  23080242   周怡  女  66  91  75  47  47  44.0
2   2308024251  23080242   张波  男  85  81  75  45  45  60.0
3   2308024249  23080242   朱浩  男  65  50  80  72  62  71.0
4   2308024219  23080242   封印  女  73  88  92  61  47  46.0
5   2308024201  23080242   迟培  男  60  50  89  71  76  71.0
6   2308024347  23080243   李华  女  67  61  84  61  65  78.0
7   2308024307  23080243   陈田  男  76  79  86  69  40  69.0
8   2308024326  23080243   余皓  男  66  67  85  65  61  71.0
9   2308024320  23080243   李嘉  女  62  作弊  90  60  67  77.0
10  2308024342  23080243  李上初  男  76  90  84  60  66   NaN
11  2308024310  23080243   郭窦  女  79  67  84  64  64  79.0
12  2308024435  23080244  姜毅涛  男  77  71  缺考  61  73   NaN
13  2308024432  23080244   赵宇  男  74  74  88  68  70  71.0
14  2308024446  23080244   周路  女  76  80  77  61  74  80.0
15  2308024421  23080244  林建祥  男  72  72  81  63  90   NaN
16  2308024433  23080244  李大强  男  79  76  77  78  70   NaN
17  2308024428  23080244  李侧通  男  64  96  91  69  60   NaN
18  2308024402  23080244   王慧  女  73  74  93  70  71  75.0
19  2308024422  23080244  李晓亮  男  85  60  85  72  72   NaN
20  2308024201  23080242   迟培  男  60  50  89  71  76  71.0

Process finished with exit code 0
 

二:通过read_csv|read_table读取csv格式数据创建(DataFrame)数据块


# -*- coding:utf-8 -*-from pandas import read_csv, read_table'''从文件(rz.cvs)读取数据创建pandas的DataFrame数据框
'''dataFrame = read_csv(r'./file/rz.csv', sep=",")
print("读取cvs文件的所有数据: ")
print(dataFrame)print()
print("读取前5行数据:")
print(dataFrame.head(5))print()
print("读取后5行数据:")
print(dataFrame.tail(5))print()
print("使用read_table读取csv数据也是可以的")dataFrame = read_table(r'./file/rz.csv', sep=",")
print("读取cvs文件的所有数据: ")
print(dataFrame)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByCVSFileCreatePandasOfDataFrame.py 
读取cvs文件的所有数据: 
            学号        班级   姓名 性别  英语  体育  军训  数分  高代  解几
0   2308024241  23080242   成龙  男  76  78  77  40  23  60
1   2308024244  23080242   周怡  女  66  91  75  47  47  44
2   2308024251  23080242   张波  男  85  81  75  45  45  60
3   2308024249  23080242   朱浩  男  65  50  80  72  62  71
4   2308024219  23080242   封印  女  73  88  92  61  47  46
5   2308024201  23080242   迟培  男  60  50  89  71  76  71
6   2308024347  23080243   李华  女  67  61  84  61  65  78
7   2308024307  23080243   陈田  男  76  79  86  69  40  69
8   2308024326  23080243   余皓  男  66  67  85  65  61  71
9   2308024320  23080243   李嘉  女  62  作弊  90  60  67  77
10  2308024342  23080243  李上初  男  76  90  84  60  66  60
11  2308024310  23080243   郭窦  女  79  67  84  64  64  79
12  2308024435  23080244  姜毅涛  男  77  71  缺考  61  73  76
13  2308024432  23080244   赵宇  男  74  74  88  68  70  71
14  2308024446  23080244   周路  女  76  80  77  61  74  80
15  2308024421  23080244  林建祥  男  72  72  81  63  90  75
16  2308024433  23080244  李大强  男  79  76  77  78  70  70
17  2308024428  23080244  李侧通  男  64  96  91  69  60  77
18  2308024402  23080244   王慧  女  73  74  93  70  71  75
19  2308024422  23080244  李晓亮  男  85  60  85  72  72  83
20  2308024201  23080242   迟培  男  60  50  89  71  76  71

读取前5行数据:
           学号        班级  姓名 性别  英语  体育  军训  数分  高代  解几
0  2308024241  23080242  成龙  男  76  78  77  40  23  60
1  2308024244  23080242  周怡  女  66  91  75  47  47  44
2  2308024251  23080242  张波  男  85  81  75  45  45  60
3  2308024249  23080242  朱浩  男  65  50  80  72  62  71
4  2308024219  23080242  封印  女  73  88  92  61  47  46

读取后5行数据:
            学号        班级   姓名 性别  英语  体育  军训  数分  高代  解几
16  2308024433  23080244  李大强  男  79  76  77  78  70  70
17  2308024428  23080244  李侧通  男  64  96  91  69  60  77
18  2308024402  23080244   王慧  女  73  74  93  70  71  75
19  2308024422  23080244  李晓亮  男  85  60  85  72  72  83
20  2308024201  23080242   迟培  男  60  50  89  71  76  71

使用read_table读取csv数据也是可以的
读取cvs文件的所有数据: 
            学号        班级   姓名 性别  英语  体育  军训  数分  高代  解几
0   2308024241  23080242   成龙  男  76  78  77  40  23  60
1   2308024244  23080242   周怡  女  66  91  75  47  47  44
2   2308024251  23080242   张波  男  85  81  75  45  45  60
3   2308024249  23080242   朱浩  男  65  50  80  72  62  71
4   2308024219  23080242   封印  女  73  88  92  61  47  46
5   2308024201  23080242   迟培  男  60  50  89  71  76  71
6   2308024347  23080243   李华  女  67  61  84  61  65  78
7   2308024307  23080243   陈田  男  76  79  86  69  40  69
8   2308024326  23080243   余皓  男  66  67  85  65  61  71
9   2308024320  23080243   李嘉  女  62  作弊  90  60  67  77
10  2308024342  23080243  李上初  男  76  90  84  60  66  60
11  2308024310  23080243   郭窦  女  79  67  84  64  64  79
12  2308024435  23080244  姜毅涛  男  77  71  缺考  61  73  76
13  2308024432  23080244   赵宇  男  74  74  88  68  70  71
14  2308024446  23080244   周路  女  76  80  77  61  74  80
15  2308024421  23080244  林建祥  男  72  72  81  63  90  75
16  2308024433  23080244  李大强  男  79  76  77  78  70  70
17  2308024428  23080244  李侧通  男  64  96  91  69  60  77
18  2308024402  23080244   王慧  女  73  74  93  70  71  75
19  2308024422  23080244  李晓亮  男  85  60  85  72  72  83
20  2308024201  23080242   迟培  男  60  50  89  71  76  71

Process finished with exit code 0
 

三: 通过read_excel函数读取excel数据创建(DataFrame)数据框


# -*- coding:utf-8 -*-from pandas import read_excel'''从文件(i_nuc.xls)读取数据创建pandas的DataFrame数据框
'''
dataFrame = read_excel(r'./file/i_nuc.xls', sheet_name="Sheet3")print(dataFrame)print()
print("读取前5行数据:")
print(dataFrame.head(5))print()
print("读取后5行数据:")
print(dataFrame.tail(5))

运行效果:
 


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByExcelFileCreateDataFrame.py 
            学号        班级   姓名 性别  英语  体育  军训  数分  高代  解几
0   2308024241  23080242   成龙  男  76  78  77  40  23  60
1   2308024244  23080242   周怡  女  66  91  75  47  47  44
2   2308024251  23080242   张波  男  85  81  75  45  45  60
3   2308024249  23080242   朱浩  男  65  50  80  72  62  71
4   2308024219  23080242   封印  女  73  88  92  61  47  46
5   2308024201  23080242   迟培  男  60  50  89  71  76  71
6   2308024347  23080243   李华  女  67  61  84  61  65  78
7   2308024307  23080243   陈田  男  76  79  86  69  40  69
8   2308024326  23080243   余皓  男  66  67  85  65  61  71
9   2308024320  23080243   李嘉  女  62  作弊  90  60  67  77
10  2308024342  23080243  李上初  男  76  90  84  60  66  60
11  2308024310  23080243   郭窦  女  79  67  84  64  64  79
12  2308024435  23080244  姜毅涛  男  77  71  缺考  61  73  76
13  2308024432  23080244   赵宇  男  74  74  88  68  70  71
14  2308024446  23080244   周路  女  76  80  77  61  74  80
15  2308024421  23080244  林建祥  男  72  72  81  63  90  75
16  2308024433  23080244  李大强  男  79  76  77  78  70  70
17  2308024428  23080244  李侧通  男  64  96  91  69  60  77
18  2308024402  23080244   王慧  女  73  74  93  70  71  75
19  2308024422  23080244  李晓亮  男  85  60  85  72  72  83
20  2308024201  23080242   迟培  男  60  50  89  71  76  71

读取前5行数据:
           学号        班级  姓名 性别  英语  体育  军训  数分  高代  解几
0  2308024241  23080242  成龙  男  76  78  77  40  23  60
1  2308024244  23080242  周怡  女  66  91  75  47  47  44
2  2308024251  23080242  张波  男  85  81  75  45  45  60
3  2308024249  23080242  朱浩  男  65  50  80  72  62  71
4  2308024219  23080242  封印  女  73  88  92  61  47  46

读取后5行数据:
            学号        班级   姓名 性别  英语  体育  军训  数分  高代  解几
16  2308024433  23080244  李大强  男  79  76  77  78  70  70
17  2308024428  23080244  李侧通  男  64  96  91  69  60  77
18  2308024402  23080244   王慧  女  73  74  93  70  71  75
19  2308024422  23080244  李晓亮  男  85  60  85  72  72  83
20  2308024201  23080242   迟培  男  60  50  89  71  76  71

Process finished with exit code 0
 

四: 通过read_sql函数多读取数据mysql的数据创建(DataFrame)数据框


# -*- coding:utf-8 -*-
import pandas as pd
import pymysql"""从文件数据框表读取数据创建pandas的DataFrame数据框
"""
conn = None
dataFrame = None
try:# 打开数据库连接 db = pymysql.connect(host="localhost", user="您的用户名", password="您的密码", database="数据库名称", charset='utf8' )conn = pymysql.connect(user="root", password="123456", host="localhost", database="tope-pay-user", port=3306,charset='utf8', autocommit=False)sql = "select * from sys_books"print("利用pandas模块导入mysql表的数据")dataFrame = pd.read_sql(sql, conn)
except Exception as err:print("pandas模块导入表sys_books数据异常: ", err)
finally:conn.close()print("导入的dataFrame数据为:")print(dataFrame)

利用pandas模块导入mysql表的数据
D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByMySQLCreateDataFrame.py:16: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.
  dataFrame = pd.read_sql(sql, conn)
导入的dataFrame数据为:
    id             NAME  ...         update_time  deleted
0    1      零基础学Python3  ... 2023-09-26 16:58:34        0
1    2         零基础学Java  ... 2023-09-26 16:58:34        0
2    3          零基础学C++  ... 2023-09-26 16:58:34        0
3    4  零基础学Python数据可视化  ... 2023-09-26 16:58:34        0
4    5          零基础学C语言  ... 2023-09-26 16:58:34        0
5    6      零基础学android  ... 2023-09-26 16:58:34        0
6    7      零基础学Python3  ... 2023-09-26 17:09:41        0
7    8         零基础学Java  ... 2023-09-26 17:09:41        0
8    9          零基础学C++  ... 2023-09-26 17:09:41        0
9   10  零基础学Python数据可视化  ... 2023-09-26 17:09:41        0
10  11          零基础学C语言  ... 2023-09-26 17:09:41        0
11  12      零基础学android  ... 2023-09-26 17:09:41        0

[12 rows x 8 columns]

五:通过create_engine函数读取mysql数据创建(DataFrame)数据框

# -*- coding:utf-8 -*-from sqlalchemy import create_engine
import pandas as pdMYSQL_HOST = 'localhost'
MYSQL_PORT = '3306'
MYSQL_USER = 'root'
MYSQL_PASSWORD = '123456'
MYSQL_DB = 'tope-pay-user'"""从文件数据框表读取数据创建pandas的DataFrame数据框
"""engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8'% (MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB))sql = 'select * from sys_books'df = pd.read_sql(sql, engine)pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
print(df)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByMySQLCreate_engineDataFrame.py 
    id                      NAME  ...         update_time  deleted
0    1           零基础学Python3  ... 2023-09-26 16:58:34        0
1    2              零基础学Java  ... 2023-09-26 16:58:34        0
2    3               零基础学C++  ... 2023-09-26 16:58:34        0
3    4  零基础学Python数据可视化  ... 2023-09-26 16:58:34        0
4    5             零基础学C语言  ... 2023-09-26 16:58:34        0
5    6           零基础学android  ... 2023-09-26 16:58:34        0
6    7           零基础学Python3  ... 2023-09-26 17:09:41        0
7    8              零基础学Java  ... 2023-09-26 17:09:41        0
8    9               零基础学C++  ... 2023-09-26 17:09:41        0
9   10  零基础学Python数据可视化  ... 2023-09-26 17:09:41        0
10  11             零基础学C语言  ... 2023-09-26 17:09:41        0
11  12           零基础学android  ... 2023-09-26 17:09:41        0

[12 rows x 8 columns]

Process finished with exit code 0
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

九、GC收集日志

JVM由浅入深系列一、关于Java性能的误解二、Java性能概述三、了解JVM概述四、探索JVM架构五、垃圾收集基础六、HotSpot中的垃圾收集七、垃圾收集中级八、垃圾收集高级👋GC收集日志 ⚽️1. 认识GC收集日志 垃圾收集日志是一个重要的信息来源,对于与性能相关的一些悬而未决的…

1.5.C++项目:仿muduo库实现并发服务器之socket模块的设计

项目完整版在: 一、socket模块:套接字模块 二、提供的功能 Socket模块是对套接字操作封装的一个模块,主要实现的socket的各项操作。 socket 模块:套接字的功能 创建套接字 绑定地址信息 开始监听 向服务器发起连接 获取新连接 …

uni-app:实现页面效果3

效果 代码 <template><view><!-- 风速风向检测器--><view class"content_position"><view class"content"><view class"SN"><view class"SN_title">设备1</view><view class&quo…

2023.9.23 关于 HTTP 详解

目录 HTTP 协议 认识 URL HTTP 请求 认识方法 HTTP 响应 认识状态码 总结 HTTP 请求的构造 Form 表单构造 AJAX 构造 Postman 构造 HTTP 协议 应用层使用最广泛的协议浏览器 基于 HTTP协议 获取网站是 浏览器 和 服务器 之间的交互桥梁HTTP协议 基于传输层的 TCP协…

计算机竞赛 深度学习火车票识别系统

文章目录 0 前言1 课题意义课题难点&#xff1a; 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 图像识别 火车票识别系统 该项目较为新颖&#xff0c;适…

下载盗版网站视频并将.ts视频文件合并

. 1.分析视频请求123 2.数据获取和拼接 1.分析视频请求 1 通过抓包观察我们发现视频是由.ts文件拼接成的每一个.ts文件代表一小段2 通过观察0.ts和1.ts的url我们发现他们只有最后一段不同我们网上找到url获取的包3 我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定…

【深度学习实验】卷积神经网络(三):自定义二维卷积层:步长、填充、输入输出通道

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 步长、填充 a. 二维互相关运算&#xff08;corr2d&#xff09; b. 二维卷积层类&#xff08;Conv2D&#xff09; c. 模型测试 d. 代码整合 2. 输入输出通道 a…

mysql的mvcc详解

一 MVCC的作用 1.1 mvcc的作用 1.MVCC&#xff08;Multiversion Concurrency Control&#xff09;多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制&#xff0c;使得在InnoDB事务隔离级别下执行一致性读操作有了保障。 2.mysql中的InnoDB中实现了MVCC主要…

前端面试:01.图中输入什么?

~~~~~~~~~~~~~ 先自行想一想&#xff0c;答案在~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ 先自行想一想&#xff0c;答案在~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ 先自行想一想&#xff0c;答案在~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ 先自行想一想&#xff0c;答案在~~~~~~~~~~~~~~~~~ ~~~~~~~~…

ciscn_2019_s_9

ciscn_2019_s_9 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments32位&#xff0c;啥也没开&#xff0c;开心愉悦写shellcode int pwn() {char s[24]; // [esp8…

智能回答机器人的“智能”体现在哪里?

人工智能的广泛应用已经成为当今社会科技发展的趋势之一。通过人工智能技术&#xff0c;我们可以在不同领域中实现自动化、智能化和高效化&#xff0c;从而大大提升生产和生活效率。智能回答机器人的出现和使用便能很好的证明这一点。今天我们就来探讨一下智能会打机器人的“智…

python爬取百度图片

1.查询数据 打开网页。 https://cn.bing.com/images/search?q%E7%99%BE%E5%BA%A6%E5%9B%BE%E7%89%87&formHDRSC2&first1&cw1585&ch924 我们右键查看网页源代码,发现能找到我们需要的img衔接,但是这是一个动态网页。我们每次向下滑动网页&#xff0c;会发现图…

C++核心编程--多态篇

4.7、多态 4.7.1、多态的基本概念 多态是C面向对象三大特征之一 多态分为两类 静态多态&#xff1a;函数重载和运算符重载属于静态多态&#xff0c;复用函数名动态多态&#xff1a;派生类和虚函数实现运行时多态 静态多态和动态多态区别&#xff1a; 静态多态的函数地址早…

校物联网智慧安全用电平台的设计和运用-安科瑞黄安南

一.前言 安全用电历来都是学校安全工作的一个重点&#xff0c;然而每年因此发生的人身伤害以及火灾事故却在继续着&#xff0c;究其原因&#xff0c;主观上是我们的防患意识淡薄&#xff0c;客观上则是由于学生在宿舍使用违规电器、乱拉电线造成的。 现代的大学生宿舍&#x…

【生物信息学】使用谱聚类(Spectral Clustering)算法进行聚类分析

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成测试数据 2. 绘制初始数据分布图 3. 循环尝试不同的参数组合并计算聚类效果 4. 输出最佳参数组合 5. 绘制最佳聚类结果图 6. 代码整合 一、实验介绍…

HashMap底层源码,数据结构

HashMap的底层结构在jdk1.7中由数组链表实现&#xff0c;在jdk1.8中由数组链表红黑树实现&#xff0c;以数组链表的结构为例。 JDK1.8之前Put方法&#xff1a; JDK1.8之后Put方法&#xff1a; HashMap基于哈希表的Map接口实现&#xff0c;是以key-value存储形式存在&#xff0c…

K8S内容分发网络之集群,nginx,负载均衡,防火墙

K8S内容分发网络之集群&#xff0c;nginx&#xff0c;负载均衡&#xff0c;防火墙 一、Kubernetes 区域可采用 Kubeadm 方式进行安装。1.所有节点&#xff0c;关闭防火墙规则&#xff0c;关闭selinux&#xff0c;关闭swap交换2.修改主机名3.所有节点修改hosts文件4.调整内核参数…

闪击笔试题

选择题 ping命令不涉及什么协议? A&#xff1a;DNS B: TCP C: ARP D: ICMP B&#xff0c;ping基于ICMP协议&#xff0c;解析路由会用到ARP和DNS a、b、c三人参加学科竞赛&#xff0c;每个学科按一二三名次给x、y、z分&#xff0c;已知a得22分&#xff0c;b和c得9分&#xf…

【图论C++】链式前向星(图(树)的存储)

/*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在竞赛算法学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记&#xff1a;转载需获得博主本人…

人工智能的学习算法

1956年&#xff0c;几个计算机科学家相聚在达特茅斯会议&#xff0c;提出了 “人工智能” 的概念&#xff0c;梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。其后&#xff0c;人工智能就一直萦绕于人们的脑海之中&#xff0c;并在科研实验室中…