NLP学习者常用命令
2024-04-02 16:57:36 0 举报
AI智能生成
这是一个学习资源,涵盖了自然语言处理(NLP)、Python编程语言以及Linux常用命令的内容。NLP是处理和理解人类语言的一种方法,主要用于实现人机交互和文本分析等任务。Python是一种流行的编程语言,由于其简洁易懂的语法和强大的库支持,被广泛应用于数据科学、机器学习和人工智能等领域。Linux则是一种广泛应用于服务器和工作站的操作系统,其命令行界面(CLI)提供了大量的命令来管理文件、执行任务等。通过学习这些内容,你可以提升自己的语言处理能力,掌握实用的编程语言,并且熟悉Linux系统的使用。
作者其他创作
大纲/内容
>> Python <<
.split( ) 分割,( ) 中的符号进行分割 .strip( ) 头尾删除()中的字符
.shape 输出数组的行和列数 .shape[0] 输出行数 .shape[1] 输出列数
enumerate( ) 输出可遍历对象(如:列表)输出(如列表中的)数据 和 数据下标
.tolist( ) 将numpy的数组/矩阵转化为列表
字典
字符串转字典
eval( )
子主题
修改 | 新增
dict1 = {'text': '玻璃糖醛酸酶', 'normalized_result': '透明质酸酶'}
# key存在则修改
dict1['text'] = '玻璃糖醛酸酶A'
>>dict1 = {'text': '玻璃糖醛酸酶A', 'normalized_result': '透明质酸酶'}
# key不存在则新增
dict1['id'] = 1010
>>dict1 = {'text': '玻璃糖醛酸酶A', 'normalized_result': '透明质酸酶', 'id': 1010}
易错处,看备注!!
# key存在则修改
dict1['text'] = '玻璃糖醛酸酶A'
>>dict1 = {'text': '玻璃糖醛酸酶A', 'normalized_result': '透明质酸酶'}
# key不存在则新增
dict1['id'] = 1010
>>dict1 = {'text': '玻璃糖醛酸酶A', 'normalized_result': '透明质酸酶', 'id': 1010}
易错处,看备注!!
字典转元组
list(zip(data.keys(),data.values())) # 字典data{'a':1, 'b':2}转化为元组[('a':1), ('b':2)]
json文件新增数据
新建list列表,append添加字典数据
a_list = [] a_list.append(a_dict)
读写数据
读取数据
data = json.load(open(path, 'r', encoding='utf-8'))
1、对数据进行序列化 2、writer函数写入
json_data = json.dumps(data, ensure_ascii=False, indent=2) f.write(json_data)
文件复制
shutil.copy(src, dst, *, follow_symlinks=True)
shutil.copy2(src, dst, *, follow_symlinks=True)
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False):
shutil.rmtree(path, ignore_errors=False, onerror=None)
shutil.make_archive(base_name, format, root_dir, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)
文件读写
读取
file = open('filename.txt', mode = 'r')
读取str类型的list数据,可使用import ast data = ast.literal_eval( ) 进行数据转化为list
写入
file = open('filename.txt', mode = 'w')
file.writable(data)
file.writable(data)
列表list
去重
list(set( ))
字符串类型的列表,转化为列表
from ast import literal_eval
literal_eval(a)
literal_eval(a)
import re
re.findall("",)
re.findall("",)
指定位置添加元素
list.insert(index,obj)
删除指定元素
.remove(str) # 指定元素删除
.pop(int) # 指定索引位置删除
取除空值
test = [i for i in test if i != '']
列表list重复项
删除重复
data = [i for n, i in enumerate(data) if i not in data[:n]]
查看重复及重复次数
from collections import Counter
b = dict(Counter(data))
print ({key:value for key,value in b.items()}) #展现重复元素和重复次数
b = dict(Counter(data))
print ({key:value for key,value in b.items()}) #展现重复元素和重复次数
对字典依据值进行排序
dict_sort = sorted(date.items(), key=lambda x: x[1], reverse=True)
对字典的所有值进行求和
sum(dict(dict_sort).values())
字符串str
查询某字符串在另一字符串的位置
find()
rfind() # 倒序查询
>> 数据分析 <<
numpy
pandas
查询
选择列: data['A'] # 输出'A'列数据
按索引选择行: data.loc[1] # 输出第2行数据
按数字索引选择行: data.iloc[x, :] # 输出data的x行所有列数值
label, content = data.iloc[x, :] 【label】为data的x行的第一列数值(字符串类型)
使用切片选择行:data[:3] # 输出前3行数据
筛选特定字符的行: data[data["A"].str.contains("aa_info")] # 输出 'A' 列中含有aa_info字符的行
筛选数据
判断条件筛选
data.query("A > B") # 输出 'A' 列中大于 'B' 列的行
以列表元素筛选
data[data["A"].isin(name_list)] # 输出在列表中 同时 也A列中元素的行
指定数据类型筛选
data.select_dtypes("int64") # 输出数据类型'int64'的列
删除
删除列
列名称: data.drop(['A', 'B'], axis=1, inplace=True)
列数:data.drop(data.columns[0:3], axis=1, inplace=True) # 删除前3列
增加
增加行
行名称:data.at['5'] = ['ABCDEFG'] # 行名称为5的行,增加内容'ABCDEFG'
将一个列表添加到最后一行:
alist = [1,2,3,4,5,6,7]
df.loc[len(df)]=alist
df.loc[len(df)]=alist
插入列
列名称
data.insert(0, 'E', s) # 0位置插入, 名称为E的列,列所有值为s
data.reindex([原来所有的列名,新增列名]) # 新增新列名,列所有值为不填则默认为空,, fill_value=1则为1
合并操作:data.insert(2, "C", data["A"].str.cat(data["B"], sep="")) # 在第3列中,插入“C”列,内容:“A”列合并“B”列的数据
修改名称
修改列名称
data.rename(columns={'A': 'A_new_name'}, inplace=True)
data.columns = ['A','B'] # 将所有列名重新定义,'A' 'B'
修改行名称
修改
(正则)replace修改: data["B"].replace(r'BA.$', value='NEW', regex=True, inplace = True) # 将B列中包含“BA”及其后缀的字段替换为NEW
排序: data["排名"] = data.rank(method="dense").astype("int") # 对data的数据进行排序 并 增加“排名”列
截断:data["排名"] = data["排名"].clip(0,10) # 对超过或低于指定范围数的数值进行截断
重置索引:data.reset_index(drop=True)
替换:data['A'].loc[data['A'] == 111] = 0 # 将A列中所有111的值,都替换成0
data.loc[1] = ['A', 'B']
空值
查看缺失值 data.isnull()
填充空值: data.fillna('无') # 将所有缺失值填充为“无”
删除空值: data.dropna(axis=1) # 删除含有空值的列
重复值
查看唯一值
返回唯一值: data.unique() # 以数组的形式返回所有唯一值
返回唯一值个数:
data.nuniue() # 每列唯一值的个数
data.A.value_counts() (查看"A"列各个值出现次数)
data['A'].value_counts()
删除重复值
data.drop_duplicates(subset=['A','B'], keep='first', inplace=False, ignore_index=False)
数据操作
自定义函数: data['B'].apply(lambda x: x+1) # B列所有值都+1
长宽表转化
宽表转长表: data.melt(id_vars="姓名", var_name="科目", value_name="成绩")
长表转宽表
data.pivot(index='姓名', columns='科目', values='成绩')
data.set_index(['姓名','科目']).unstack('科目')
df1.set_index(['姓名','科目'])['成绩'].unstack()
合并表
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=('_x', '_y'), copy=True)
子主题
重置索引或其level
data.reset_index()
Series类型转化
将Series 转化为 DataFrame
data.to_frame()
Series 转化为 列表
data["A"].tolist() # A列数据转化为列表
转化为字典
data["A"].to_dict() # A列数据转化为字典
文件读写
读取文件
pd.read_csv('A.csv', sep='\t', encoding='utf-8',index_col=0)
保存文件
保存文件不添加索引 data.to_csv('A.csv', encoding='utf-8', index=False)
创建表格
data = pd.DataFrame([['A1', 'A2'], ['B1', 'B2']], columns=["Apples","Bananas"], index=['A', 'B']) # 创建带有列标和行标的表
>> Linux <<
系统状态
查看端口
lsof -i: (端口号) (如lsof -i:8001)
删除进程
kill -9 (进程号) (如kill -9 10820)
查看设备使用情况
top
硬件查看
查看机器SN号
sudo dmidecode -t 1
查看服务器型号和主板型号
sudo dmidecode |grep -A16 "System Information$"
查看CPU和超线程信息
CPU型号
$ cat /proc/cpuinfo | grep name | uniq
$ cat /proc/cpuinfo | grep name | uniq
物理CPU个数
$ cat /proc/cpuinfo| grep "physical id"| sort| uniq | wc -l
$ cat /proc/cpuinfo| grep "physical id"| sort| uniq | wc -l
每个物理CPU的ID
$ cat /proc/cpuinfo | grep "physical id" | sort | uniq
$ cat /proc/cpuinfo | grep "physical id" | sort | uniq
每个物理CPU的物理核数
$ cat /proc/cpuinfo| grep "cpu cores"| uniq
$ cat /proc/cpuinfo| grep "cpu cores"| uniq
逻辑总核数
$ cat /proc/cpuinfo| grep "processor"| wc -l
$ cat /proc/cpuinfo| grep "processor"| wc -l
直接查看输出
$ cat /proc/cpuinfo
$ cat /proc/cpuinfo
内存
有几根内存条,总共内存多大:
$ sudo dmidecode|grep -A16 "Memory Device"|grep 'Size'| sort
$ sudo dmidecode|grep -A16 "Memory Device"|grep 'Size'| sort
查看内存频率:
$ sudo dmidecode|grep -A16 "Memory Device"|grep 'Speed'|sort
$ sudo dmidecode|grep -A16 "Memory Device"|grep 'Speed'|sort
查看内存品牌:
$ sudo dmidecode --type 17 | grep Manufacturer | sort
$ sudo dmidecode --type 17 | grep Manufacturer | sort
硬盘
查看每个硬盘和大小:
$ lsblk
$ lsblk
df -h
查看单个硬盘的品牌:
$ sudo hdparm -I /dev/sda
$ sudo hdparm -I /dev/sda
Model Number中如果ST开头则是希捷。
区分固态和机械硬盘:
$ lsblk -d -o name,rota
区分固态和机械硬盘:
$ lsblk -d -o name,rota
显卡
$ lspci | grep -i nvidia
$ lspci | grep -i vga
$ nvidia-smi
$ lspci | grep -i vga
$ nvidia-smi
$ lspci -nn | grep VGA
(lspci -n/-nn:显示设备的vendor厂商号和device设备号;显示厂商等信息和名称。)
(lspci -n/-nn:显示设备的vendor厂商号和device设备号;显示厂商等信息和名称。)
http://pci-ids.ucw.cz/read/PC/10de/2504 输入数字代码查询显卡型号
查看显存和显卡的用量
nvitop
NVIDIA GPU压力测试
$ git clone https://github.com/wilicc/gpu-burn
$ cd gpu-burn
$ make
# 压力测试60秒,不带参数默认应该是10秒
$ ./gpu_burn 60
$ cd gpu-burn
$ make
# 压力测试60秒,不带参数默认应该是10秒
$ ./gpu_burn 60
# 查看风扇转速:<服务器风扇满转一般10000RPM左右>
$ sudo ipmitool sdr
$ sudo ipmitool sdr
查看电源情况
$ sudo dmidecode | grep Power
查看文件夹大小
du -h --max-depth=1
显示硬盘速度
iostat -d -m # 以M为单位显示所有信息
查看ubuntu系统的版本信息
cat /proc/version
查看自己linux内核版本
arch
创建用户
重置root密码
sudo passwd root
sudo adduser 用户名
系统重启
sudo reboot
文件管理
复制
cp -r 旧文件名 新文件名
删除
rm -rf 文件名
创建文件
touch 文件名字.后缀类型
创建文件夹
mkdir 文件夹名字
剪切文件
mv 文件名
修改权限
chmod 权限值(如:777) chmod -R 权限值(如:777) ——>修改文件夹及其下面所有文件的权限
chmod +x(将文件设置为可执行文件(777对用户组操作, +x对文件操作))
查看nvidia管理界面
nvidia-smi
nvidia-smi -l 1 # 查看状态,设置每一秒刷新一次
torch库
测试:import torch
print(torch.cuda.current_device()) # 输出当前设备(只有一个GPU为0)
print(torch.cuda.is_available()) # 检查cuda是否可用
压缩/解压文件
zip -r data.zip data # 把/home目录下面的data目录压缩为data.zip
zip -r a123.zip a 3.txt # 把/home目录下面的a文件夹和3.txt压缩成为a123.zip
unzip data.zip -d databak # 把/home目录下面的data.zip解压到databak目录里面
unzip t.zip # 把/home目录下面的t.zip直接解压到/home目录里面
tar -czvf demo.tar.gz demo.c # 将demo.c 压缩成demo.tar.gz
tar -xzvf filename.tar.gz # 解压filename.tar.gz
python库下载
1、先下载gensim 2、下载transformers 3、下载sklearn
nginx转发ssh端口
配置 nginx.conf文件
启动nginx
cd /usr/local/nginx
sudo ./sbin/nginx -c ./conf/nginx.conf -s reload
测试
ssh 172.16.98.100 -l 用户名 -p 测试端口号
>> 库 <<
import time
start = time.clock() end = time.clock() print(end-start)
start = time.clock() end = time.clock() print(end-start)
>> SQL <<
查询e_book表的types字段包含字符串"3"
select * from e_book where types like "%3%";
select * from e_book where find_in_set('3', types);
select * from e_book where locate('3', types);
select * from e_book where INSTR(types,'3');
0 条评论
下一页