详解Python操作Excel文件

前言

本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法。

常见库简介

1.xlrd

xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件。

地址:http://xlrd.readthedocs.io/en/latest/

  • xlrd支持.xls,.xlsx文件的读

  • 通过设置on_demand变量使open_workbook()函数只加载那些需要的sheet,从而节省时间和内存(该方法对.xlsx文件无效)。

  • xlrd.Book对象有一个unload_sheet方法,它将从内存中卸载工作表,由工作表索引或工作表名称指定(该方法对.xlsx文件无效)

2.xlwt

xlwt是一个用于将数据和格式化信息写入旧Excel文件的库(如.xls)。

地址:https://xlwt.readthedocs.io/en/latest/

  • xlwt支持.xls文件写。

3.xlutils

xlutils是一个处理Excel文件的库,依赖于xlrd和xlwt。

地址:http://xlutils.readthedocs.io/en/latest/

  • xlutils支持.xls文件。

  • 支持Excel操作。

4.xlwings

xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库。

地址:http://docs.xlwings.org/en/stable/index.html

  • xlwings支持.xls读,支持.xlsx文件读写。

  • 支持Excel操作。

  • 支持VBA。

4、强大的转换器可以处理大部分数据类型,包括在两个方向上的numpy array和pandas DataFrame。

5.openpyxl

openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。

地址:https://openpyxl.readthedocs.io/en/stable/

  • openpyxl支持.xlsx文件的读写。

  • 支持Excel操作。

  • 加载大.xlsx文件可以使用read_only模式。

  • 写入大.xlsx文件可以使用write_only模式。

6.xlsxwriter

xlsxwriter是一个用于创建Excel .xlsx文件的库。

地址:https://xlsxwriter.readthedocs.io/

  • xlswriter支持.xlsx文件的写。

  • 支持VBA。

  • 写入大.xlsx文件时使用内存优化模式。

7.win32com

win32com库存在于pywin32中,是一个读写和处理Excel文件的库。

地址:http://pythonexcels.com/python-excel-mini-cookbook/

  • win32com支持.xls,.xlsx文件的读写,支持.xlsx文件的写。

  • 支持Excel操作。

8.DataNitro

DataNitro是一个内嵌在Excel中的插件。

地址:https://datanitro.com/docs/

  • DataNitro支持.xls,.xlsx文件的读写。

  • 支持Excel操作。

  • 支持VBA。

  • 收费

9.pandas

pandas通过对Excel文件的读写实现数据输入输出

地址:http://pandas.pydata.org/

  • pandas支持.xls,.xlsx文件的读写。

  • 支持只加载每个表的单一工作页。

 

详解Python操作Excel文件

 

提醒及注意:

  • xlutils 仅支持 xls 文件,即2003以下版本;

  • win32com 与 DataNitro 仅支持 windows 系统;

  • xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,请再安装 pypiwin32 或者 pywin32 包;

  • win32com 不是独立的扩展库,而是集成在其他库中,安装 pypiwin32 或者 pywin32 包即可使用;

  • DataNitro 是 Excel 的插件,安装需到官网下载。

基本功能:

由于设计目的不同,每个模块通常着重于某一方面功能,各有所长。

1.xlwings

可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。

2.openpyxl

简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。

3.pandas

数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。

4.win32com

从命名上就可以看出,这是一个处理 windows 应用的扩展,Excel 只是该库能实现的一小部分功能。该库还支持 office 的众多操作。需要注意的是,该库不单独存在,可通过安装 pypiwin32 或者 pywin32 获取。

5.xlsxwriter

拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。

6.DataNitro

作为插件内嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 脚本。既然被称为 Excel 中的 python,协同其他 python 库亦是小事一桩。然而,这是付费插件…

7.xlutils

基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特点中规中矩,比较大的缺点是仅支持 xls 文件。

读写测试

测试用例

  • 用例1. 读.xls文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

  • 用例2. 读.xlsx文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

  • 用例3. 读.xls文件的整个表(表有1个分页,页有2000行1200列的整数)。

  • 用例4. 读.xlsx文件的整个表(表有1个分页,页有2000行1200列的整数)。

  • 用例5. 写.xls文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

  • 用例6. 写.xlsx文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

  • 用例7. 写.xls文件的整个表(表有1个分页,页有2000行1200列的整数)。

  • 用例8. 写.xlsx文件的整个表(表有1个分页,页有2000行1200列的整数)。

测试结果

详解Python操作Excel文件

注:

  1. xlwt和pandas每个工作页最多写入256列,因此测试用例修改为每页有2000行256列的整数.

  2. xlutils读写依赖于xlrd和xlwt,不单独测试。

  3. openpyxl测试两种模式,一是普通加载写入,二是read_only/write_only模式下的加载写入。

  4. DataNitro要收费,且需依托Excel使用,本次不测试。

性能比较

单从读写的性能上考虑,win32com的性能是最好的,xlwings其次。

openpyxl虽然操作Excel的功能强大,但读写性能过于糟糕,尤其是写大表时,会占用大量内存(把我的4G内存用完了),开启read_only和write_only模式后对其性能有大幅提升,尤其是对读的性能提升很大,使其几乎不耗时(0.01秒有点夸张,不过确实是加载上了)。

pandas把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能表现中规中矩,但其对Excel文件兼容性是最好的,支持读写.xls,.xlsx文件,且支持只读表中单一工作页。同样支持此功能的库还有xlrd,但xlrd只支持读,并不支持写,且性能不突出,需要配合xlutils进行Excel操作,并使用xlwt保存数据,而xlwt只能写入.xls文件(另一个可以写入.xls文件的库是pandas,且这两个写入的Excel文件最多只能有256列,其余库就我目前的了解均只能写入.xlsx文件),性能一般。

xlsxwriter功能单一,一般用来创建.xlsx文件,写入性能中庸。win32com拥有最棒的读写性能,但该库存在于pywin32的库中,自身没有完善的文档,使用略吃力。xlwings拥有和win32com不相伯仲的读写性能,强大的转换器可以处理大部分数据类型,包括二维的numpy array和pandas DataFrame,可以轻松搞定数据分析的工作。

综合考虑,xlwings的表现最佳,正如其名,xlwings——Make Excel Fly!

便捷性比较

本测试目前只是针对Excel文件的读写,并未涉及Excel操作,单从读写的便捷性来讲,各库的表现难分上下,但是win32com和xlwings这两个库可以在程序运行时实时在打开的Excel文件中进行操作,实现过程的可视化,其次xlwings的数据结构转换器使其可以快速的为Excel文件添加二维数据结构而不需要在Excel文件中重定位数据的行和列,因此从读写的便捷性来比较,仍是xlwings胜出。

代码示例

最后,附上一些演示代码,大家可自行体会下不同模块的使用。

6.1 xlwings基本代码

  1. import xlwings as xw
  2. #连接到excel
  3. workbook = xw.Book(r'path/myexcel.xlsx')#连接excel文件
  4. #连接到指定单元格
  5. data_range = workbook.sheets('Sheet1').range('A1')
  6. #写入数据
  7. data_range.value = [1,2,3]
  8. #保存
  9. workbook.save()

6.2 xlsxwriter基本代码

  1. import xlsxwriter as xw
  2. #新建excel
  3. workbook  = xw.Workbook('myexcel.xlsx')
  4. #新建工作薄
  5. worksheet = workbook.add_worksheet()
  6. #写入数据
  7. worksheet.write('A1',1)
  8. #关闭保存
  9. workbook.close()

6.3 xlutils基本代码import xlrd #读取数据

  1. import xlwt #写入数据
  2. import xlutils #操作excel
  3. #----xlrd库
  4. #打开excel文件
  5. workbook = xlrd.open_workbook('myexcel.xls')
  6. #获取表单
  7. worksheet = workbook.sheet_by_index(0)
  8. #读取数据
  9. data = worksheet.cell_value(0,0)
  10. #----xlwt库
  11. #新建excel
  12. wb = xlwt.Workbook()
  13. #添加工作薄
  14. sh = wb.add_sheet('Sheet1')
  15. #写入数据
  16. sh.write(0,0,'data')
  17. #保存文件
  18. wb.save('myexcel.xls')
  19. #----xlutils库
  20. #打开excel文件
  21. book = xlrd.open_workbook('myexcel.xls')
  22. #复制一份
  23. new_book = xlutils.copy(book)
  24. #拿到工作薄
  25. worksheet = new_book.getsheet(0)
  26. #写入数据
  27. worksheet.write(0,0,'new data')
  28. #保存
  29. new_book.save()

6.4 win32com基本代码

  1. import win32com.client as wc
  2. #启动Excel应用
  3. excel_app = wc.Dispatch('Excel.Application')
  4. #连接excel
  5. workbook = excel_app.Workbooks.Open(r'e:/myexcel.xlsx' )
  6. #写入数据
  7. workbook.Worksheets('Sheet1').Cells(1,1).Value = 'data'
  8. #关闭并保存
  9. workbook.SaveAs('newexcel.xlsx')
  10. excel_app.Application.Quit()

6.5 openpyxl基本代码

  1. import openpyxl
  2. # 新建文件
  3. workbook = openpyxl.Workbook()
  4. # 写入文件
  5. sheet = workbook.activesheet['A1']='data'
  6. # 保存文件
  7. workbook.save('test.xlsx')

6.6 DataNitro基本代码

  1. #单一单元格赋值
  2. Cell('A1').value = 'data'
  3. #单元区域赋值
  4. CellRange('A1:B2').value = 'data'

openpyxl具体使用

1、 创建一个excel 文件,并写入不同类的内容

  1. # -*- coding: utf-8 -*-
  2. from openpyxl import Workbook
  3. import datetime
  4. import time
  5. # 创建文件对象
  6. wb = Workbook()
  7. # 获取第一个sheet
  8. ws = wb.active
  9. # 在第1行第A列,写入数字23333
  10. ws['A1'] = 23333
  11. # 写入中文(unicode中文也可以)
  12. ws['B1'] = "你好!"+"欢迎使用openpyxl"
  13. # 在下一行,写入多个单元格
  14. ws.append([123])
  15. # 写入一个当前时间
  16. ws['A2'] = datetime.datetime.now()
  17. # 写入一个自定义的时间格式
  18. ws['A3'] = time.strftime('%Y{y}%m{m}%d{d}%H{h}%M{f}%S{s}', time.localtime()).format(y='年', m='月', d='日', h='时', f='分', s='秒')
  19. # 保存文件,注意文件覆盖
  20. wb.save("test.xlsx")
  21. # 关闭流
  22. wb.close()

2、创建sheet

  1. from openpyxl import Workbook
  2. wb = Workbook()
  3. # 创建一个sheet
  4. ws1 = wb.create_sheet("sheet1")
  5. # 设定一个sheet的名字
  6. ws1.title = "sheet1 Title"
  7. # 设定sheet的插入位置 默认插在后面
  8. ws2 = wb.create_sheet("Mysheet"0)
  9. ws2.title = "Mysheet"
  10. # 设定sheet的标签的背景颜色
  11. ws1.sheet_properties.tabColor = "1072BA"
  12. # 获取某个sheet对象
  13. print(wb["sheet1 Title"])
  14. print(wb["Mysheet"])
  15. # 获取全部sheet的名字,遍历sheet名字
  16. print(wb.sheetnames)
  17. for i in wb.sheetnames:
  18. print(i)
  19. print("*"*50)
  20. for sheet in wb:
  21. print(sheet.title)
  22. # 将sheet1中的A1单元格赋值为zeke
  23. wb["sheet1 Title" ]["A1"] = "zeke"
  24. # 复制一个sheet
  25. source = wb["sheet1 Title"]
  26. target = wb.copy_worksheet(source)
  27. wb.save("test2.xlsx")
  28. wb.close()

3、操作单元格

  1. # -*- coding: utf-8 -*-
  2. from openpyxl import Workbook
  3. wb = Workbook()
  4. # 创建一个sheet
  5. ws1 = wb.create_sheet("Sheet1")
  6. # 将A1单元格赋值为123.11
  7. ws1["A1"] = 123.11
  8. # 将B2单元格赋值为你好
  9. ws1["B2"] = "你好"
  10. # 将第4行第2列的单元赋值为10
  11. temp = ws1.cell(row=4, column=2, value=10)
  12. print(ws1["A1"].value)
  13. print(ws1["B2"].value)
  14. print(temp.value)
  15. wb.save("test3.xlsx")
  16. wb.close()

4、操作已存在的文件

  1. # -*- coding: utf-8 -*-
  2. from openpyxl import Workbook
  3. from openpyxl import load_workbook
  4. # 打开test5.xlsx文件
  5. wb = load_workbook('test5.xlsx')
  6. # 猜测格式类型
  7. wb.guess_types = True
  8. ws = wb.active
  9. ws["A1"] = "12%"
  10. print(ws["A1"].value)
  11. # 注意如果原文件有一些图片或者图标,则保存的时候可能会导致图片丢失
  12. wb.save("test5.xlsx")
  13. wb.close()

5、操作批量的单元格

  1. # -*- coding: utf-8 -*-
  2. from openpyxl import Workbook
  3. wb = Workbook()
  4. # 创建一个sheet
  5. ws1 = wb.create_sheet("Sheet")
  6. ws1["A1"] = 1
  7. ws1["A2"] = 2
  8. ws1["A3"] = 3
  9. ws1["B1"] = 4
  10. ws1["B2"] = 5
  11. ws1["B3"] = 6
  12. ws1["C1"] = 7
  13. ws1["C2"] = 8
  14. ws1["C3"] = 9
  15. # 操作单列
  16. print(ws1["A"])
  17. for cell in ws1["A"]:
  18. print(cell.value)
  19. # 从A列到C列,获取每一个值
  20. print(ws1["A:C"])
  21. for column in ws1["A:C"]:
  22. for cell in column:
  23. print(cell.value)
  24. # 从第1行到第3行,获取每一个值
  25. row_range = ws1[1:3]
  26. print(row_range)
  27. for row in row_range:
  28. for cell in row:
  29. print(cell.value)
  30. print("*"*50)
  31. # 从第1行到第3行,从第1列到第3列
  32. for row in ws1.iter_rows(min_row=1, min_col=1, max_col=3, max_row=3):
  33. for cell in row:
  34. print(cell.value)
  35. # 获取所有行
  36. print(ws1.rows)
  37. for row in ws1.rows:
  38. print(row)
  39. print("*"*50)
  40. # 获取所有列
  41. print(ws1.columns)
  42. for col in ws1.columns:
  43. print(col)
  44. wb.save("test4.xlsx")
  45. wb.close()

6、获取所有的行(列)对象:

  1. # coding=utf-8
  2. from openpyxl import Workbook
  3. from openpyxl import load_workbook
  4. # 打开test5.xlsx文件
  5. wb = load_workbook('test5.xlsx')
  6. ws = wb.active
  7. rows = []
  8. for row in ws.iter_rows():
  9. rows.append(row)
  10. # 所有行
  11. print(rows)
  12. # 获取第一行
  13. print(rows[0])
  14. # 获取第一行第一列的单元格对象
  15. print(rows[0][0])
  16. # 获取第一行第一列的单元格对象的值
  17. print(rows[0][0].value)
  18. # 获取最后行 print rows[-1]
  19. print(rows[len(rows) - 1])
  20. # 获取第后一行和最后一列的单元格对象
  21. print(rows[len(rows) - 1][len(rows[0]) - 1])
  22. # 获取第后一行和最后一列的单元格对象的值
  23. print(rows[len(rows) - 1][len(rows[0]) - 1].value)
  24. cols = []
  25. for col in ws.iter_cols():
  26. cols.append(col)
  27. # 所有列
  28. print(cols)
  29. # 获取第一列
  30. print(cols[0])
  31. # 获取第一列的第一行的单元格对象
  32. print(cols[0][0])
  33. # 获取第一列的第一行的值
  34. print(cols[0][0].value)
  35. print("*" * 30)
  36. # 获取最后一列
  37. print(cols[len(cols) - 1] )
  38. # 获取最后一列的最后一行的单元格对象
  39. print(cols[len(cols) - 1][len(cols[0]) - 1])
  40. # 获取最后一列的最后一行的单元格对象的值
  41. print(cols[len(cols) - 1][len(cols[0]) - 1].value)
  42. wb.close()

 

 

推荐阅读(点击即可跳转阅读)

 

1. SpringBoot内容聚合

2. 面试题内容聚合

3. 设计模式内容聚合

4. Mybatis内容聚合

5. 多线程内容聚合

Javaç¥é³å®æ¹å¬ä¼å·

原文链接:https://blog.csdn.net/weixin_38405253/article/details/100512061

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

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

相关文章

linux启动php服务_群晖docker 实现nodejs为后端的简单web服务器 并连接数据库

前情摘要:虽然群晖有web station 作为开发简单网页的服务器首选,但是web station 里面最好用的技术栈还是基于LNMP或者LAMP的php开发环境。对于学习nodejs的同学可能丈二和尚,摸不着头脑,到底如何在web station上运行nodejs&#…

5G时代,工业互联网安全挑战远超消费互联网

来源:工业4俱乐部导读新兴技术带来的机遇同时也面临着挑战。国家互联网应急中心近日发布的《2019 年上半年我国互联网网络安全态势》显示,在工业互联网安全方面,累计监测发现我国境内暴露的联网工业设备数量共计6814个。在上海电气集团的风电…

Ubuntu16.04系统run方式安装nvidia显卡驱动

安装完Ubuntu后系统的字体很大,这是由于显卡驱动造成的 避免sudo apt-get install nvidia-*安装方式造成登录界面循环。 1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题…

买书问题

题目:在节假日的时候,书店一般都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。在销售《哈利波特》平装本系列中,一共有五卷,用编号0,1,2,3&#xf…

excel二极管伏安特性曲线_【刘敏蔷老师】半导体二极管的原理及应用

半导体二极管18101113 李莹半导体二极管是十分常见的一种电子器件。像手机屏幕、霓虹灯、收音机等生活常见的器件中都会用到半导体二极管。今天就给大家简单介绍一下半导体二极管的工作原理以及它的应用。No.1什么是二极管?二极管,简单明了的说就是一种只…

SPSS入门学习

文章目录一、初识——初步上手操作安装软件1、了解.sav——数据文件扩展名2、打开SPSS开始上手进行一些简单操作2.1 导入一个系统自带的数据(1.数据编辑窗口(SPSS Data Aditor)(2.结果输出窗口(SPSS Viewer)(3.程序语句窗口&#…

PPT讲解机器人产业发展现状与未来展望,重磅资料

来源:直观学机械法律顾问:赵建英律师前段时间咱们分享过王喜文博士做的关于《5G》的PPT,大家反映做的很棒,最近王喜文博士在机械工业出版社又出了一本新书:智能:《新一代人工智能发展规划》解读&#xff0c…

Ubuntu设置鼠标灵敏度

Ubuntu中鼠标的使用经常飘,可以设置鼠标的灵敏度 打开终端,输入以下代码,来查找自己鼠标的设备号。 xinput --list 我的鼠标的设备名是 "Logitech G300s Optical Gaming Mouse" 找到鼠标设备对应的ID号,比如我的是11…

全球工业互联网十大最具成长性技术

来源:经济参考报为准确把握全球工业互联网战略方向,及时跟踪工业互联网创新动态及特征态势,前瞻研判工业互联网产业化重大布局,中国工业互联网研究院任近来调研走访了一批在工业互联网相关技术及产业方面具备领先水平和特色的骨干…

python简单选择排序_python 选择排序

原博文 2018-09-21 23:46 − def select_sort(slist): for i in range(len(slist)): x i for j in range(i, len(slist)): if slist[j] < slist[x]: x j... 相关推荐 2019-12-06 14:02 − 学习提纲 生成指定范围的数值列表&#xff0c;语法格式如下&#xff1a; 生成一个包…

Matlab数据类型及预定义

Matlab数据类型 最新的版本会包括更多的类型。 因为Matlab是面向matrix的编程语言&#xff0c;所以&#xff0c;Matlab将任何一个变量都看作一个matrix。如果是一个数 就是1x1的矩阵。 matlab不需要预定义变量&#xff0c;但是 预定义变量可以使循环程序执行更快。 全局变量…

Nature解析中国AI现状,2030年能引领全球吗?

来源&#xff1a;机器之心《Nature》近日的一篇分析文章表示&#xff0c;中国的人工智能研究在质量上进步很快&#xff0c;但是在高影响的论文、人才和伦理上面还需要追赶美国。中国巨大的人口总量帮助人脸检测技术快速进步。中国不仅仅是世界上人口最多的国家&#xff0c;看起…

变量的存储类型(storage class)

变量的存储类型(storage class) 对于变量的存储类型&#xff0c;前面遇到过一些疑惑&#xff0c;再简单的在这里说一下。存储类型是指存储变量值的内存类型&#xff0c;它用来决定存储空间的大小。变量的存储类型决定着变量的存储器和作用域。有三个地方可以用于存储变量&#…

centos7调节虚拟机字体_初次安装虚拟机中Ubuntu16.04系统设置的一些小问题(小白教程)...

也不知道是哪里操作有误&#xff0c;最开始安装成功我的界面是这个样子&#xff0c;之前第一次安装的时候忘记改语言&#xff0c;这次注意到了&#xff0c;直接安装的中文。看着中文实在太舒服&#xff0c;好像设置都变得简单了&#xff1f;一、切换中文输入法&#xff1a;系统…

用半机械器官,打开发育生物学领域的黑匣子

来源&#xff1a;中国生物技术网 随着自然发育中的组织一起生长的微型传感器一小群细胞是如何组织成为心脏、大脑或者肾脏等器官的&#xff1f;这一发育的关键时期&#xff0c;长期以来一直是发育生物学领域的黑匣子。部分原因是因为没有足够小且足够灵活的传感器在不损伤细胞的…

matlab图像边缘检测分析

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 所谓边缘是指其周围像素灰度有变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。物体的边缘是由灰度不连续所反映的。基于边缘的…

python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 在本文中&#xff0c;我们将介绍从数据集中选择要素的不同方法; 并使用Scikit-learn&#xff08;skl…

Nature子刊批判人工神经网络:先天结构比后天训练更重要,应该借鉴动物大脑...

来源&#xff1a;凹非寺人工神经网络可以从动物大脑中学到什么&#xff1f;最新一期Nature子刊上&#xff0c;就刊登了这样一篇文章。美国冷泉港实验室的神经科学家Anthony M. Zador&#xff0c;对当下人工神经网络的研究思路进行了深刻反思与批判&#xff1a;大多数动物行为不…

matlab的傅里叶变换

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 图像变换&#xff1a; 更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 在 MATLAB 中&#xff0c;一般用二元函数…

笔记一 Redis基础

在cmd 命令中运行redis 运行redis命令 &#xff1a;redis-cli Reids数据结构初探 数据结构有五种 string(字符串)、 list(列表)、set&#xff08;集合&#xff09;、hash&#xff08;散列&#xff09;、zset(有序集合) redis各类型的简单介绍 和最基础的命令 1.string&a…