python | 语法点-笔记

----不断更新中

1.python删除文件或者文件夹

os.remove("path/to/file")          #删除一个文件

os.rmdir("path/to/dir")               #删除一个空的文件夹

shutil.rmtree("path/to/dir")      #删除一个文件夹及其内部所有内容

2.返回一个np.array中等于某个值的下标

np.where(arr==0)

3.字典和json文件的转化

从json文件读入成字典:

import json
with open("file.json",'r') as f:
      data=json.load(f)

有时候json里有乱码的字符(例如某些格式的中文字符)会读取错误。

把字典写入json文件:

dict_={"A":1}
json_data = json.dumps(dict_)
with open("/tmp/dict_json.json", 'w') as f:
    f.write(json_data)

4.数组合并

竖向合并如下

np.concatenate([x01,x02,x03,x04])   ##四个数组的shape均为(50,2),合并之后shape为(200,2)

横向合并如下

np.concatenate([x01,x02,x03,x04],axis=1)   ##四个数组的shape均为(50,2),合并之后shape为(50,8)

5.pycharm提示前面的f,c,v的含义

p:parameter 参数
m:method 方法
c:class 类
v:variable 变量
f:function 函数

6.省略号 …

… 在Python里是个对象,type(…)是ellipsis;
常出现在 函数参数之后,或者冒号之后。

省略号的一个解释

7. np.isin()

np.isin(array_A,array_B)

array_A的每个元素是否在array_B中,返回长度为array_A的布尔类型的数组。

8.不进入python3 运行代码

python3 -c "import jupyter, matplotlib"

9.按位取反运算符:~

对数据的每个二进制位取反,即把1变为0,把0变为1

10.dataframe.plot()画图点的透明度

alpha为点的透明度,alpha越小,透明度越大。

dataframe.plot(kind="scatter", x="longitude", y="latitude", alpha=0.1)

11. dataframe.plot()按两列画图,并设置圆点的大小和颜色

#housing是波士顿房价的数据集,按两列画散点图,圆的半径表示人口,颜色表示房价
housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4, 
                s=housing["population"]/100, label="population", 
                c="median_house_value", cmap=plt.get_cmap("jet"),colorbar=True, 
             ) 
plt.legend()

12.np.r_和np.c_连接数组

np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat();

np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()。

13.super(类,self)的用法

结果为该类的父类,例子如下:

class A():  
  def go(self):  
    print ("go A go!")  
    
  def stop(self): 
    print ("stop A stop!") 

  def pause(self):  
    raise Exception("Not Implemented")  


class B(A): 
  def go(self):
    super(B, self).go() 
    print ("go B go!")  

测试代码:
a=A()
b=B()
a.go()
b.go()

上述的输出结果:
“go A go!”
“go A go!”
“go B go!”

14.np.all用法

检查一个数组中元素是否都为True。

15.对字典按value排序

sorted(dict,key=lambda x:x[1],reverse=True)    #此时是降序排列 

16.numpy.atleast_1d(*arys)

Convert inputs to arrays with at least one dimension. .

17.np.cumsum

累加数组前k个元素,得到一个同样长度的数组。

18. python2 : round(0.5)=1.0,python 3:round(0.5)=0

19.reshape的排列规则

>>a=[0, 1, 2, 3, 4, 5, 6, 7]
>>np.reshape(a,[2,4])
array([[0, 1, 2, 3],
       [4, 5, 6, 7]])

20. python 输出大型矩阵改为没有省略号

np.set_printoptions(threshold='nan')

21.python的矩阵以‘行’为单位进行存储

22.画图时-图形窗口的位置

把图形画到console里面,输入一行:

 %matplotlib inline 

单独窗口画图,输入一行:

%matplotlib qt/tk

23.生成一定shape的整数数组

np.random.randint(5,size=(2,4))

24.pip list

查看ubutnu中已安装的包清单

25.ubutnu升级spyder

pip install --upgrade spyder

26.assert表达式

若表达式不成立(比如函数参数组成的表达式)会以“警告”或“报错”的形式返回,如:

assert 1==0   #会“报错”
assert 1==1   #不“报错”

27.双端队列用法

import collections
a=collections.deqeue()
a.append('first')  #a=['first']
a.appendleft('second')  #a=['second','first']
b=[3,4]
a.extendleft(b)    #a=[4,3,'second','first']
a.popleft()   #输出4

28.生成随机数

import numpy as np
np.random.choice(a,b,replace=True)

生成的array有重复数据,replace=False,生成的array无重复元素。

29.np.argsort(x)

得到array x中元素升序后的下标

30.计算时间差的两种方法

import datetime
start=datetime.now()
end=datetime.now()
(end-start).seconds  
import time
start=time.clock()
end=time.clock()
print(end-start)

31.pip insatall cv2

只是安装了python-cv2的接口

32.判断多维数据是否等于某个数值

例如:sentences=[[1,6,5,6,7],[2,2,6,4,4,],[10,4,4,4,4]]

判断 sentences==4
返回 False;

如果把sentences转成tensorflow或者pytorch的tensor;
a=tf.convert_to_tensor(sentences),
然后再判断 a==4,返回一个多维bool类型数据(mask)
例如:
array([
[False, False, False, False, False],
[False, False, False, True, True],
[False, True, True, True, True]])

33.from … import理解

.代表当前目录,…代表上一层目录,…代表上上层目录。

例如:在模块A.B.C中的代码:

from . import D     # 导入A.B.D
from .. import E    # 导入A.E
from ..F import G    # 导入A.F.G,.. 和 F是连着的,中间没有空格

34. 逆序输出一个list——a[::-1]

a=[1,2,3,4,5,6]
a[::-1]

35.若包存在,则导入

try: 
    from apex import amp
except:
    mixed_precision = False  # not installed

36. 二维列表排序

a=[[160,55],[165,50],[165,53],[165,44],[163,60],[170,80],[170,90],[170,85],[174,66],[177,60]]

#第0维升序,第1维度原来的顺序
sorted(a,key=lambda x:x[0])  

#第0维升序,第1维度升序
sorted(a,key=lambda x:(x[0],x[1])) 

#第0维升序,第1维度降序
sorted(a,key=lambda x:(x[0],-x[1])) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值