Python基础

一些小知识,备忘罢辽
json.dumps()就是把dic转换为str存入json,得到字符串
json.loads()函数是将json格式数据转换为字典
一般-1就是表示不确定,比如reshape(2,-1),就是固定两行列不清楚
shape[0]就是返回第一维度值,就是列数
model.compile()方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准
series.get(key,value),这是针对于pandas函数而言的,之前是在字典里有,比如字典里没有输入的key,可能会报错,那就让他没有这个key的时候呢输出指定的value。
unique():返回参数数组中所有不同的值,并按照从小到大排序

complie的用法
https://www.runoob.com/python/python-func-compile.html

format使用

有很多种调用方法:
(1)通过位置
x1,x2=’{},{}’.format(‘value’,‘hei’)
x1,x2=’{0},{1}’.format(‘value’,‘hei’)
x1,x2=’{0},{1},{0}’.format(‘value’,‘hei’)#就是位置0,1,0上的值

(2)通过关键字
x1,x2=’{name},{age}’.format(age=18,name=‘kzc’)
(3)通过下标
In [7]: p=[‘kzc’,18]
In [8]: ‘{0[0]},{0[1]}’.format§
Out[8]: ‘kzc,18’
(4)通过类的对象
class Person():
def init (self,name,age):
self.name,self.age=name,age
def str():
return ‘This is guy is {self.name},is {self.age} years old.’.format{self=self}

lambda表达式

一点小记忆:实际上就是变量1=变量2:操作
冒号后面是对变量2的操作,什么加减乘除或者if之类,反正会有一个返回值,返回给变量1

切片操作

[起始位置:结束位置(不包括它这个位置,就到这里就结束):从左到右的步长]
这个步长如果是-1就是反着从右到左
**

argparse用法

**
1、定义一个容器(或者叫解析器)
parser = argparse.ArgumentParser(description=‘Process some integers.’)
参数description是对容器的解释
2、往容器里加参数
parser.add_argument(‘integers’, metavar=‘N’, type=int, nargs=’+’, help=‘an integer for the accumulator’)
3、创造一个解析器传给args
args=parser.parse_args()
4、调用args.integers即可

numpy

1、np.argmax:返回最大值下标,可以设定arix值
2、input_data=np.random.uniform(0,19,size=(batch_size,seq_length))
函数原型: numpy.random.uniform(low,high,size)
功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.

**

pandas

**
1、创建Datafram
(1)直接创建字典,把字典给Dataframe。

data1={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}
data2={'one':np.random.rand(3),'two':np.random.rand(3)}
print(data1)
print(data2)
df1=pd.DataFrame(data1)
df2=pd.DataFrame(data2)
print(df1)
print(df2)

输出结果就是key是列名。
(2)用series创建字典。

data1={'a':pd.Series(np.random.rand(2),index=['a','b']),'b':pd.Series(np.random.rand(2)),'c':pd.Series(np.random.rand(2))}
data2={'one':np.random.rand(3),'two':np.random.rand(3)}
print(data1)
print(data2)
df1=pd.DataFrame(data1)
df2=pd.DataFrame(data2)
print(df1)
print(df2)

总结:由Series组成的字典,创建Dataframe, columns为字典key, index为Series的标签(就是series的列)
(3)直接给个数组,然后用list(’’)来给column命名

df=pd.DataFrame(np.arange(25).reshape(5,-1),columns=list('abcde'))
df = pd.DataFrame(["STD, City    State",
"33, Kolkata    West Bengal",
"44, Chennai    Tamil Nadu",
"40, Hyderabad    Telengana",
"80, Bangalore    Karnataka"], columns=['row'])

(4)先定义DATAFRAME 然后直接一个个给值。其实就是相当于一列列新增

df=pd.DataFrame()
df['penultimate'] = np.array([1,2,3])

2、np.where(条件)
这个返回的应该是[[arry], ]这样子的,[arry]里是符合条件的索引值,所以想要取得索引值就要把[ARRY]拿出来,所以用的话应该是np.where(条件)[0]这样子。

3、
就是把5%-95%之外的值变成low和high的函数

ser = pd.Series(np.logspace(-2, 2, 30))
print(ser)
# 小于low_per分位的数赋值为low,大于low_per分位的数赋值为high
def cap_outliers(ser, low_perc, high_perc):
    low, high = ser.quantile([low_perc, high_perc])
    print(low_perc, '%ile: ', low, '|', high_perc, '%ile: ', high)
    ser[ser < low] = low
    ser[ser > high] = high
    return(ser)

capped_ser = cap_outliers(ser, .05, .95)
print(capped_ser)

我觉得比较有意思的是ser.quantile(),就是你这个SERIES调用这个函数然后给一个上下百分比,他就返回给你最大值和最小值。
然后python还挺有意思的,它的循环直接就一句
ser[ser<low]=low
ser[ser>high]>high

4、onehot
pandas提供对one-hot编码的函数是:pd.get_dummies()

1)Series里的整数会按照one-hot进行编码,但是在DataFrame里面不会
2)特征的维度数量会有所增加

df = pd.DataFrame(np.arange(25).reshape(5,-1), columns=list('abcde'))
print(df)
# 对列'a'进行onehot编码
df_onehot = pd.concat([pd.get_dummies(df['a']), df[list('bcde')]], axis=1)
print(df_onehot)

5、获得dataframe里最大值最多的一列

df = pd.DataFrame(np.random.randint(1,100, 9).reshape(3, -1),columns=list('abc'))
print(df)
# 获取每列包含行方向上最大值的个数
print(df.apply(np.argmax, axis=1))
count_series = df.apply(np.argmax, axis=1).value_counts()
print(count_series)

6、如何将文本拆分为两个单独的列

df = pd.DataFrame(["STD, City    State",
"33, Kolkata    West Bengal",
"44, Chennai    Tamil Nadu",
"40, Hyderabad    Telengana",
"80, Bangalore    Karnataka"], columns=['row'])
print(df)
df_out=df.row.str.split(',|\t',expand=True)
print(df_out)
df_head=df_out.iloc[0]
df_out=df_out[1:]
df_out.columns=df_head
print(df_out)

哇,这个真的是了哦,首先先用argmax(axis=1)去求每一行的最大值的下标,就是在哪一列,然后用value_count去计数,就算出了这些列的出现次数。

6、groupby,返回一个分组对象,想显示的话就list()

df=pd.DataFrame({'fruit':['apple','banana','orange']*2,'taste':
                 np.random.random(6),
                 'price':np.arange(6)})
print(df)
df_grpd=df['taste'].groupby(df.fruit)
print(list(df_grpd))

一些感想:
Tensor的维度,比如说像[x,y,z]其实可以理解为是z是最小粒度单元,然后往外扩的是y,z。
然后其中的数值呢,就表示里边有几项,z=8就是8-1个逗号哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值