python 机器学习库:Numpy 2

对数组的分割

图0

Hsplits( 参数1 , 参数2)
第一个参数是待分割的数组。
第二个参数是要把数组从哪几列分割。
若把一个数组分割成两个,则参数2 是一个数字,若分割成两个以上,参数2是一个元组,而且不可以大于要原数组的列数。
Vsplit(参数1,参数2) 表示按行分割数组。参数同上

图1

图1_1
相等于引用,变量名不同但指向相同的内存空间。

图2

图2_1

浅拷贝,变量名不同,a 保存数据的内存地址,c 保存a的内存地址。改变c的元素相当于改变a的元素

图3

深拷贝,在内存中再创建一份数据,赋给新的变量。改变一个的元素,不影响另外一个数组的元素

常用函数

图4

图5
提取数组内某些特定的元素,生成新的数组。
如图提取a数组中的i数组所对应下标的元素,组成新数组。
图5_1

图5_2

图5_3

图5_4
默认按行进行提取,如果要按列提取,就要如图进行指定。

图6

提取数组中列的最大元素
Xrange(data.shape[1]) 返回一个迭代对象,这里data.shape[1] 是 4 所以返回 [0,1,2,3]。
Data.argmax(axis = 0) 表示按列,最大元素所在的行的索引。
Data[ ind , xrange(data.shape[1])] 返回没列的最大值。
也可以返回没行的最大值:
Data[ xrange(data.shape[0]) , data.argmax(axis=1)]

参数:
Axis = 0 按列干什么
Axis = 1 按行干什么

图7
对部分元素的操作。

图8
生成boolean数组和基本应用,提取原数组为true的元素。

图8_1
替换数组中的满足条件的元素

图8_2
按行、按列提取

图9
Ix_() 函数用于生成数组所有可以的组合。
在这里是 a , b , c 这三个数组,计算(a[n] + (b[n] * c[n] ) 的所有可能的组合(n表示多个数组的任意下标)。
例如:计算 a[n] + b[n] + c[n]的所有可能结果的方法有两种:
1.
图10
2.
图11

图12
Transpose 求转置
Inv 求逆矩阵
Pinv 求伪逆矩阵
Eye 创建单位数组
Dot 矩阵运算
Linalg.trace 求数组的迹,主对角线元素的和。

图12_1
Linalg.solve 求线性方程的解
已知: 数组a 数组b 求一个是数组x
满足dot(a , x) == b

Linalg.eig 求矩阵的特征向量,返回前一个数组是特征值,后一个数组是特征向量(每一列是一个特征向量)。
特征向量说明:
图12_2

linalg.companion() 求伴随矩阵
矩阵的运算

图13
矩阵的创建
A.T 求矩阵的转置
* 表示矩阵的乘法
A.I 表示矩阵的逆
Solve(A , Y) 矩阵的线性运算

矩阵(matrix) 和 数组(array)的不同

图14
创建矩阵M 和数组 A
第一个不同点:

图15
数组列是一个向量
矩阵的列是一个矩阵
如上用shape查看两者的维度时,会有不同,表示方法也不同。

图16
数组求出的boolean 是一个数组,而且应用时以列为单位。
矩阵求出的boolean 是一个矩阵,如上求得一个二位boolean矩阵,应用时以行为单位。
如果要想像矩阵一样提取列,如下:

图16_1
其中M 是矩阵
M.A 表示把矩阵变回数组 matrix —- > array

其他:
Mean() 求平均值
Median() 求中位数
Min() 求数组中最小值
Max() 求数组中最大值
Minimum(,) 求两个数组中较小的一个
Maximum(,) 求两个数组中较大的一个
Nonzero() 发现非零列返回一个数组内容是列号


参考:
1. http://wiki.scipy.org/Tentative_NumPy_Tutorial
2. http://wiki.scipy.org/Numpy_Example_List

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值