- 1. 基础语法
- 2. python 包管理(在终端输入命令)
- 3. 数据操作
第一行代码
print("hello world!")
数据类型
- 整数和浮点数
print(type(1000)) #print(type(1_000)) # print(type(1000.0)) # print(type(1e3)) #
- 字符串
print('1000')
print(type('1000')) #
- 布尔型
print(True, False) print(type(True), type(False)) #
变量和赋值
- python 中不需要显式定义数据类型
a = 1 b = 2.0 c = '3' d = True print(a,b,c,d)
运算
- 数值运算
a = 1 b = 2 p = a + b q = a - b r = a * b s = a / b print(p,q,r,s) # 3 -1 2 0.5
- 字符串运算
c1 = 'radio' c2 = 'mics' print(c1 + c2) # radiomics
- 布尔运算
d1 = True d2 = False print(d1 and d2, d1 or d2, not d1) # False True False
- 条件判断
a = 1
b = 1.0
if a == b:
print('Equal.')
else:
print('Not equal.')
# Equal.
a == 1
a = 1
if a > 1:
print('a > 1')
elif a < 1:
print('a < 1')
else:
print(' a == 1')
# a == 1
- 循环遍历
nameList = ['zhao','qian','sun','li']
for name in nameList:
print(name)
# zhao
# qian
# sun
# li
2. python 包管理(在终端输入命令)
- 查看指定 python 包信息
pip show pynomo # PyNomo 是做特征提取用的包 # Name: PyNomo # Version: 0.3.3 # Summary: PyNomo - Python Nomograms # Home-page: http://pynomo.org/ # Author: Leif Roschier # Author-email: lefakkomies@users.sourceforge.net # License: GPL # Location: d:anaconda3envslibsite-packages # Requires: # Required-by:
- Python 包安装
pip install pynomo
- 安装指定版本 Python 包
pip install pynomo==0.3.2
- 从指定镜像站下载安装 Python 包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pynomo
- 升级 python 包
pip install --upgrade pynomo
- 卸载 python 包
pip uninstall pynomo --yes
- 查看所有 python 包
pip list3. 数据操作
● 导入包
import pandas as pd import numpy as np
● 读取数据
windows 系统的路径请使用 “\” 或 “/”
xlsx_a = '/Users/Desktop/data/aa.xlsx' xlsx_b = '/Users/Desktop/data/bb.xlsx' data_a = pd.read_excel(xlsx_a) data_b = pd.read_excel(xlsx_b)
● 查看数据
-
数据列名称(影像组学特征) .columns
print(data_a.columns)
-
获取数据行列数 .shape
rows_a, cols_a = data_a.shape print(rows_a, cols_a)
-
前 n 行数据快速查看 .head (从 0 行开始)
print(data_a.head(4))
-
后 n 行数据快速查看 .tail
print(data_b.tail())
-
查看指定列数据 [列名]
print(data_a['A']) # 列名'A'
● 数据操作
-
新增列 insert(添加 label)
rows_a, cols_a = data_a.shape rows_b, cols_b = data_b.shape labels_a = np.zeros(rows_a) # 生成 a 行 0 labels_b = np.ones(rows_b) # 生成 b 行 1 (只有0和1可以这样写) data_a.insert(0, 'label', labels_a) # 第 0 列插入 label 列 data_b.insert(0, 'label', labels_b) print(data_a.head()) print(data_b.head())
-
修改列数据 (赋值)
data_b['label'] = 0 print(data_b['label']) data_b['label'] = 1
-
合并数据 concat
data = pd.concat([data_a, data_b], ignore_index = True) print(data.head()) print(data.tail())
-
数据混序 shuffle .reset_index
from sklearn.utils import shuffle data = shuffle(data) # 将合并后的a,b数据随机混序 data.reset_index(drop=True, inplace=True) # 混序后重置索引 drop去掉原来的index, inplace替换新的index print(data["label"][0:10])
-
异常值查看 .isna set_option
# 制备异常值 data['C'] = np.nan # C、D 列改为 NaN = not a number data['D'] = np.nan data.loc[3:5] = np.nan # 3,4,5行改为NaN data.loc[1, 'A'] = np.nan # 1行A列改为NaN data.loc[2, 'B'] = np.nan # 查看全部数据,不省略显示 pd.set_option('display.max_rows', None) pd.set_option('display.max_columns', None) print(data.isna()) # isna是否是NaN -
删除全部为 NaN 的行/列 .dropna
NaN = not a numberdata.dropna(axis=0, how='all', inplace=True) # axis=0 行,axis=1 列 # how='all' 只删除全部都是NaN的行 # inplace=True 对原数据操作,否则就是对副本操作 print(data.head())
-
将NaN值填 0 .fillna
data.fillna(0, inplace = True) print(data)



