import os
import json
import time
path = './'
path_merges = './results_merges'
file_list = os.listdir(path)
json_list = []
data_list = []
out_time = time.strftime("%m_%d_%H_%M")
for file in file_list:
if file.endswith(".json"):
json_list.append(file)
print(json_list)
print(f"json文件数量:{len(json_list)}")
i = 1
for json_file in json_list:
json_path = os.path.join(path, json_file)
with open(json_path, 'r') as f:
locals()['json_data' + str(i)]= f.read()
locals()['data_' + str(i)] = json.loads(locals()['json_data' + str(i)].strip())
data_list = data_list + list(locals()['data_' + str(i)].items())
i += 1
data = dict(data_list)
json_data = json.dumps(data, ensure_ascii=False)
if not os.path.exists(path_merges):
os.mkdir(path_merges)
with open(os.path.join(path_merges, f'merges_{out_time}.json'),"w") as f1:
f1.write(json_data)
cainiaofei
2022-09-30
import turtle
t = turtle.Pen()
t.speed(0) #0:最快的 1:最慢的 5/10:比较快
t.width(3) #设置宽度
my_color = ("red","green","yellow","blue","purple")
for x in range(20):
t.goto(0,-(x-1)*20)
t.pendown()
t.color(my_color[x%len(my_color)]) #这样就可以不断的循环使用元组里的颜色
t.circle(x*20)
t.penup()
turtle.done()
cainiaofei
2022-09-30
获取方式有很多种,比如(1) 借助handler,是介绍最多的一种方法,但是用起来比较麻烦;(2)使用response headers的set_cookie;(3)使用response的cookies属性获取
cainiaofei
2022-09-30
在python3.6中安装openaxu;需要.下载numpy和opencv-python,根据已经安装的python版本号下载相对应的numpy和opencv_python。例如,python3.6是32位的,那么我就下载了相对应的opencv_python-3.4.1-cp36-cp36m-win32.whi和numpy-1.14.5+mkl-cp36-cp36m-win32.whl。如果python版本是64位的,就下载相对应的64位的numpy和opencv_python。下载完成后,按住win+R输入cmd进入命令行界面。将路径切换到已经下载的numpy和opencv_python的文件所在目录。然后输入pip install numpy-1.14.5+mK-cp36-cp36m-win32.whl和pip install opencv_进行安装
cainiaofei
2022-09-30
s = [1,2,3,4,5,6]
for i in s:
print(s.pop())
6
5
4
S
[1, 2, 3]
cainiaofei
2022-09-30
Python本身的运行相对于c++等就是要慢一点的,所以在编写代码的过程中要尽量编写高效率的代码,定位运行慢的代码可以使用Python 性能分析工具 pyinstrument,但是需要安装pip install pyinstrument,然后导入from pyinstrument import Profiler,导入之后就可以按照以下的格式进行判断:
profiler = Profiler() #实例化
profiler.start() #标识要检查的代码开始
#要进行分析的代码
profiler.stop() #标识要检查的代码结束
profiler.print() #打印检查结果
提升python代码运行速度的小技巧如下:
要选择合适的数据结构
善用强大的内置函数和第三方库
尽量少用循环
避免重复计算
少用全局变量
cainiaofei
2022-09-30
Python运行慢的原因是Python是一门动态语言,不会提前将数据类型和分配空间设定好。这样设计的优势是程序员不需要估计变量位宽以分配对应的数据类型,同时不考虑位宽溢出。因为它发现当一个4字节存不了的时候,会自动用8个字节存。而。C++等静态语言都会提前给数据分配好空间,这样有两个特点:(1)编译之后,通常在内存条上开辟连续内存空间,就算不连续也能做到虚拟连续;(2)默认数据类型不会溢出;这就是C++比Python快的重要原因。Python在追求“易用性”的前提下,丢弃了数据类型预分配等底层操作,从而导致速度大大降低。仅从语言特性的角度来看,纯Python程序的性能追平C++的可能性不大。不过可以通过各种加速手段,实现很大程度地接近。
cainiaofei
2022-09-30
Lean 是 QuantConnect 开源的一款非常强大的开源量化交易平台,可以回测或运行Python或者C#写的策略,并在代码仓库中内置了上百个C#和Python的策略算法。
这个开源的算法交易引擎,专为让用户方便轻松地进行策略研究、回测和实时交易而构建。它集成了常见的数据提供商和券商,因此还可以快速部署算法交易策略。
cainiaofei
2022-09-30
print('请输入一个整数:',end = '')
x = input()
print('十进制数为: ' + x)
print('二进制数为: ' + bin(int(x)))
print('八进制数为: ' + oct(int(x)))
print('十六进制数为: ' + hex(int(x)))
print('浮点数数为: %.1f' % float(x))
print('复数为: ',complex(x))
cainiaofei
2022-09-30
一定是要python3的,因为python2的版本会慢慢停止维护,而且python2与python3的很多用法是不同的,所以建议直接学习python3,python3也优化了很多python2的内容。
cainiaofei
2022-09-30
Python相对于其他语言来说,是很适合初学者进行学习的,通俗易懂好上手,可以很快做出一定的成果,python语言的难度比C++低很多,python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。所以初学者适合学习python。
python自身是在其他语言的根基之上衍生出来的,包含了C++、ABC、Algol-68、SmallTalk、Unix shell 和其他的脚本语言。不同于其他编程语言,python在学习之初并不需要其他复杂的知识背景,就可以入手学习。 同时,python近来的热度也越来越高。因为python 的实用性非常强,现在以及未来,人工智能AI 编程的主流工具都是python,所以python更适合初学者。
后端开发、前端开发、爬虫开发、人工智能、金融量化分析、大数据、物联网等,python应用无处不在,搜索引擎Google的核心代码是python完成的、迪士尼公司动画生成的Unix版本都内建了python环境支持、国内知名的豆瓣网是使用python技术建立……可见python应用开发技术在各公司都有大规模使用,python的发展前景是不可估量的。
python为脚本语言,需要边解释边运行。好处是不需要编译,可以直接运行。坏处是由于边解释边运行,运行效率慢。C++为编译语言需要先编译再运行。好处是运行速度快,尤其对于大型程序,效率提升明显。坏处是程序更新后,需要重新编译运行,不是很方便。
python语法简单,语句简洁,使用方便,上手容易,而且不需要编译可以即使运行,尤其在Jupyter Notebook上运行,那叫一个得心应手。C++语法复杂,格式要求高,使用不便,上手较难。
python在人工智能领域占据有压倒性的优势,有众多的库支持,大多数第三方库都是基于python开发或者提供完整的API。
当然,学习哪门编程语言还要结合自己的职业发展方向与兴趣爱好,不要单纯为了学习工具而学习。
cainiaofei
2022-09-30
对于这么大的数据量进行遍历操作,使用for循环的 效率是比较低的,可以尝试使用apply 或者map进行操作:
(1)apply:
· 既可以用在DataFrame,也可以用到单独的Series中
· 运用到DataFrame时,是用到了整行或者整列上,不是逐一运用到每个元素上
· 运用到Series时,作用到每个元素上
· 第一个参数只接收python原生函数或者numpy中的函数
(2)map
· 只能运用到Series的每个元素上
· 参数可以是函数也可以是字典,还可以是序列
(3)applymap
· 只能应用在DataFrame中,并且是作用在DataFrame的每个元素中
· 参数只接收可调用的函数
cainiaofei
2022-09-30
(1)可以先读取数据,然后使用dataframe的转置功能df.T进行行列的互换
(2)也可以使用数据透视表pivot_table,pivot_table() 的特点就是默认显示指定索引列和所有数值列。索引显示的是唯一值,所以会把对应的数值处理成均值。其他str类型的列都会自动忽略。当然,使用pivot_table() 时,可以通过添加参数进行计数或求和
cainiaofei
2022-09-30
原因是因为Python底层由C来写,调用底层C语言在编译时无法解析这个参数的名称,而目前Python的底层设计无法解决这个问题,所以直接传入参数即可,不要加入default=,这里语法没问题。
(1)错误写法:
d = {
'key': 2,
}
print(d.get("key", default=0))
(2)正确写法:
d = {
'key': 2,
}
print(d.get("key", 0))
cainiaofei
2022-09-30
随着人工智能的热度越来越高,Python这个词我们听到的越来越多,伴随着Python这个单词一起涌入我们视线的还有很多句子:人生苦短,我用Python;Python-人工智能第一语言等等这样的句子。Python真的如大家说的那样这么厉害么?在所有编程语言里,Python并不算年轻,从1991年发布第一个版本,至今已经快30年了。最近几年,随着人工智能概念的火爆,Python迅速升温,成为众多AI从业者的首选语言。那么Python到底有什么魔力呢?我们从四个要点看看为什么Python能够成为人工智能的第一语言。
简便,直观且通俗易懂,新手福音,跟其他语言比较,
Python有着简便、直观且通俗易懂的优势。
编译
VS 解释
,
Python是一门解释型语言。充当编程语言与机器语言的翻译官是解释器,解释器不会一次把整个程序翻译出来,而是每翻译一行程序叙述就立刻运行,然后再翻译下一行再运行,不产生目标程序。解释器就像是同声口译,编程语言每说完一句话,解释器立即翻译给计算机,计算机立即执行程序。
而且还提供了丰富的计算库和可视化库。比如数据神器
NumPy
、可视化库
Matplotlib
、网络爬虫库:
requests、scrapy、selenium、beautifulSoup
;建模库:
nltk、keras、sklearn
等
语言简单易学,支持库丰富强大,这两大支柱从早期就奠定了
Python的发展基础。技术的普及推广就像滚雪球,早期的积累相对缓慢,一旦过了临界点,就是大爆发。别的不说,就说现在tensorflow,caffe之类的深度学习框架,主体都是用Python来实现,提供的原生接口也是Python。
正是由于上述的
特点,Python在人工智能领域中已经遥遥领先其他的语言占据了头把交椅。
cainiaofei
2022-09-30
Python相对于其他语言来说,是很适合初学者进行学习的,通俗易懂好上手,可以很快做出一定的成果,python语言的难度比C++低很多,python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。所以初学者适合学习python。
python自身是在其他语言的根基之上衍生出来的,包含了C++、ABC、Algol-68、SmallTalk、Unix shell 和其他的脚本语言。不同于其他编程语言,python在学习之初并不需要其他复杂的知识背景,就可以入手学习。 同时,python近来的热度也越来越高。因为python 的实用性非常强,现在以及未来,人工智能AI 编程的主流工具都是python,所以python更适合初学者。
后端开发、前端开发、爬虫开发、人工智能、金融量化分析、大数据、物联网等,python应用无处不在,搜索引擎Google的核心代码是python完成的、迪士尼公司动画生成的Unix版本都内建了python环境支持、国内知名的豆瓣网是使用python技术建立……可见python应用开发技术在各公司都有大规模使用,python的发展前景是不可估量的。
python为脚本语言,需要边解释边运行。好处是不需要编译,可以直接运行。坏处是由于边解释边运行,运行效率慢。C++为编译语言需要先编译再运行。好处是运行速度快,尤其对于大型程序,效率提升明显。坏处是程序更新后,需要重新编译运行,不是很方便。
python语法简单,语句简洁,使用方便,上手容易,而且不需要编译可以即使运行,尤其在Jupyter Notebook上运行,那叫一个得心应手。C++语法复杂,格式要求高,使用不便,上手较难。
python在人工智能领域占据有压倒性的优势,有众多的库支持,大多数第三方库都是基于python开发或者提供完整的API。
当然,学习哪门编程语言还要结合自己的职业发展方向与兴趣爱好,不要单纯为了学习工具而学习。
cainiaofei
2022-09-30
界面上如果能看到就不是hidden,通常爬虫的一大困难是html是由js渲染,并不是简单的发请求就可以获得肉眼看到的内容。解决方法:用selenium等模拟用户操作。Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用.先下载selenium webdriver 'geckodriver.exe’,下载好后放到python目录里面
firefox的目录也要添加到环境变量中,Selenium库里有个叫WebDriver的API。WebDriver有点儿像可以加载网站的浏览器,但是它也可以像BeautifulSoup或者其他Selector对象一样用来查找页面元素,与页面上的元素进行交互(发送文本、点击等),以及执行其他动作来运行网络爬虫。
cainiaofei
2022-09-30
可以通过for循环遍历字符串中的每个元素进行输出,输出的时候使用print(),其默认换行输出,因为参数end默认设置为换行符‘\n’,结果如下:
for i in 'helloworld':
print(i)
cainiaofei
2022-09-30
(1)face_recognition,这是一个强大、简单、易上手的人脸识别开源项目,而且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。而且该项目已经有了中文技术文档,更便于国人上手。
(2)HelloGitHub,这是一个面向编程新手、对开源社区感兴趣的项目,每个月按期更新内容,会推荐时下流行项目、入门级项目、工具书籍、企业及项目等。让你学习之余,有更多余力上手联系。
(3)bilibili用户爬虫,这是一个bilibili的爬虫小项目,做者爬取bilibili上的用户信息,并进行了相应的分析工做。
(4)Neural Doodle-把涂鸦风图片转换为艺术品风格的画做,这是一个基于神经网络实现的项目,用神经网络学习真实艺术家的绘画风格,而后将二者融合,使你的涂鸦变成杰做。
(5)awesome-python-login-model,这是一个用python模拟登录一些大型网站,还有一些简单的爬虫的项目。项目除了使用最多见的requests获取网站信息,还用到了scrapy和selenium来登陆一些难度较大的网站。
cainiaofei
2022-09-30