python数据处理之numpy和pandas(中)

接着进行上篇开始讲,上篇主要介绍了numpy的一些基本数据操作,接下来我们进行的是numpy的矩阵合并和分割,索引等一些高级的东西。

4.索引

首先我们先将代码奉上,然后一一解读:
import numpy as np
a = np.arange(3,15)
print(a)
print(a[3])#索引
b = np.arange(3,15).reshape(3,4)
print(b)
print(b[2])
print(b[1][1])
print(b[1,1])
print(b[1,:])
print(b[:,1])
print(b[1,1:3])
for row in b:
    print(row)
for col in b.T:
    print(col)
print(b.flatten())
for item in b.flat:
    print(item)
按照前面所讲的,我们先创建一个有序的矩阵,要想知道某个位置上的具体数据,就索引出来,print(a[3])直接在屏幕上打印出来这个矩阵中第四个元素是多少。接着顺序创建一个(3,4)的矩阵,这样b[2]索引到的就是矩阵第三行的所有值,为什么是第三行?因为程序员们没有第一百朵玫瑰,哈哈。如果索引这个矩阵中的摸个位置上的具体值,就要将行和列都输上,b[1][1]是代表第二行第二列的那个数值,b[1][1]和b[1,1]是一样的效果。b[1,:]和b[1]在本例中是一样的,而b[:,1]是索引的第二列的数据,b[1,1:3]索引的是第一行第一列的和第一行第二列的数据。用for循环遍历b就是上面的方面,要想遍历b的转置就用接下来的方法。b.flatten()是将本矩阵写成一个列表的形式,若将矩阵中的数值写成一列,就需要for循环写成for item in b.flat这种循环了。

5.矩阵合并


矩阵合并共四个内置函数,训练代码如下:
import numpy as np

a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.vstack((a,b))#上下合并
d = np.hstack((a,b))#左右合并
print(a.shape,b.shape)
print(c.shape)  
print(d)
print(d.shape)
print(a[np.newaxis,:])
print(a[:,np.newaxis])
A = a[:,np.newaxis]
B = b[:,np.newaxis]
e = np.vstack((A,B))
f = np.hstack((A,B))
print(e)
print(f)
C = np.concatenate((A,B,B,A),axis=1)
print(C)
现在我们来分析这段函数,首先定义两个(1,3)的矩阵,进行上下合并即变成(2,3),使用的是np.vstack(a,b)函数,a为第一行在上边。而np.hstack()是左右合并函数。a[:,np.newaxis]是改变矩阵的方向,将行矩阵变成列矩阵,同样的方法将b矩阵也变成列矩阵,这样,使用np.vstack()函数合并的话就变成6行一列,而上下合并,就变成了(3,2)矩阵。最后介绍一下合并函数np.concatenate(),可以实现若干个函数同时合并,要选择行合并和列合
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值