每次不用总是重新加载数据
只需要加载一次就可以!所以方便
注意:下面定义的变量,在上方也可以用!除非点击Kernel——Restart & run all
以上就可以充值变量上下文。
%run #调用并且 加载对应的脚本/方法。
%timeit #只能写一句话!测试 耗费时间
%%timeit #测试下面耗时
%time #测试一句话的cpu和人类感知的实际时间
%%time #测试多行代码耗时
L = [i for i in range(10)]
# 像是cell 可以放置多种不同类型的元素在List中。
# List十分灵活
import array
arr = array.array('i',[ i for i in range(10) ])
#array模块是python中实现的一种高效的数组存储类型。它和list相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型
#array.array(typecode,[initializer]) --typecode:元素类型代码;initializer:初始化器,若数组为空,则省略初始化器
arr = array.array('i',[0,1,1,3])
print(arr)
#array('i', [0, 1, 1, 3])
#array.typecode -- 对象属性
print('\n 输出 用于创建数组的类型代码字符:')
print(arr.typecode)
# 输出 用于创建数组的类型代码字符:
#i
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等>价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, >5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, >5, 1)
#[0, 20) 步长为2的
#[0, 20] 区间中截取出10个数字
[0,10)的随机10 个数字;或者 3行5列!
0-1之间均匀的浮点数
给予一个伪随机数,就能对应生成确定的随机矩阵。
#默认:均值为0 方差为1,的随机的浮点数。上面是均值为10、方差为100的 3行5列的矩阵!
产生100个 [0,100) 的浮点数
注意: X.shape[0] == 3
多维数组不建议:X[0][0]
建议使用:X[0, 0]
切片访问: x[0:5:2]
【0,5) 步长为2 NOT X
X[:2, :3] #前两行的 前三列
X[ :, 0] #取第一列
子矩阵 在父亲矩阵中使用的引用!所以也会改变 父亲矩阵!
除非 X[:2, :3].copy() —— 来进行非引用拷贝
不改变 原来的数据、而是改变成矩阵!但是需要复制!不会
注意这个有两个维度!
注意这里是让 x转化成两行的元素,自动化分列数
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
默认为:(轴)axis=0,表示进行第一维度链接
等于1 表示进行第二维度连接
注意concat 只能进行相同纬度的叠加!需要把z向量转化为 矩阵!
进行A z的纵向链接, 相当于加上一行,在自己这一行后面
进行A z的横向矩阵链接, 相当于加上一列,在自己这一行一列 后面
x = np.array( X, dtype=float )
切分点 0–2 3–6 7–9(x = 0–9)
切分矩阵,默认0-第一维度-行方向 第二行切割
注意:矩阵是从第0行开始的!,所以 第二行在A2中!
进行垂直方向 上下切分矩阵。
进行水平方向 进行左右切分
为了进行4行1列的矩阵–转变为向量
抽出所有的行,只要第一列。变为:array([ 3, 7, 11, 15]) —— 向量了!
是为了,对数据进行 预处理而进行学习使用的!
X.shape
(150,2)
X_new = np.delete( X, 138, axis=0 )
直接把X的第138行给删除了
numpy.array
中的运算直接 + - ×
/ 浮点数出发
// 证书的出发!
x ** 2 幂运算
x % 2
1 / x
A*B 是指对应元素及进行运算! 不是标准矩阵之间惩罚
A和B 两矩阵进行标准的惩罚运算。
矩阵转置方法。
相当于:
np.vstack([v] * A.shape[0]) + A
堆叠向量v, 行堆叠2次,列堆叠1次相当于上方!
v.dot(A) —— 矩阵乘法!
A.dot(v) —— v会根据矩阵A进行 自动调整自己是行向量,还是列向量!
linear algebra //线性代数
方阵才有 逆矩阵
伪 逆矩阵!可求出不是方阵的伪逆矩阵!
仍然是一个 方阵.
求出向量w的模
对应求出 w的单位向量
等同于 array.min()
沿着行方向进行运算 相加,所以最终是列加和。
X中进行乘积
求均值 和 中位数
找百分位 for percent in [0,25,50,75,100]:
求方差/ 标准差
为了查看最小值,以及最小值的位置在哪
198532 == x[198532]
直接进行乱序处理
返回修改后的数组
排好x的顺序
沿着列进行排序, 把每一行排好顺序了。
拍好 索引顺序的数组,通过索引,找大小。
标定点3, 小于3的在左边, 大于3的在右边
仍然是进行 索引的标定3
2为步长 进行索引
对应进行索引!
对应进行索引,根据ind索引,建立 新的x矩阵。
x中前两行的
第0行 和 第1行
, 1 2 3列
x[ 1:3, col]
只要对应前十行
返回bool值
np.count_nonzero(x<=3)
np.all(x>=0) //true
np.sum(x%2==0, axis=1)
np.sum( (x>3) & (x<10) )
np.sum( ~(x==0) )
最后一列被三整除为 0,3个True——转化为第0行和第3行
以上!numpy进行机器学习矩阵进行处理的方法,完成。
因为 sklearn是需要numpy的数据进行操作的,然而Pandas方便进行处理,所以 需要进行这样的过度。
应该再加上:
plt.legend()
用来显示对应曲线的图例
linestyle 绘制出来 : -, – -不同的图像形式。
更改 x,y轴的范围.
通常绘制二维特征/两个特征的时候 用散点图。
不透明度—— 0完全透明,1完全不透明。
l1, l2 = -1, 1
X_new = np.empty((len(x), 2))
# 将一维数据 映射到二维上面了,利用 高斯核函数.
for i, data in enumerate(x):
X_new[i, 0] = gaussian(data, l1)
X_new[i, 1] = gaussian(data, l2)
# enumerate( x ) 讲x的数值放入到data中,索引放入到i中.
关键学会 enumerate的使用。
y = iris.target
plt.scatter(X[y==0,0], X[y==0,1], color="red") #找出鸢尾花对应的种类所在行,
#然后显示 这一行的,0\1两个特征~ OK~
plt.scatter(X[y==1,0], X[y==1,1], color="blue")
plt.scatter(X[y==2,0], X[y==2,1], color="green")
plt.show()
使用copy()数值
y = digits.target
y = digits.target.copy() # 这样写作为一个拷贝才正确
使用try except
try:
return 2 * precision * recall / (precision + recall)
except:
return 0.0