NUMPY学习系列——数组的基本操作

numpy数组的基本操作方法

索引

首先我们导入numpy,import numpy as np
numpy支持隐式索引
x = np.array([0,1,2,3,4,5,6,7,8,9]),那么我们可以使用x[0]来获取向量x的第一个元素0
y = np.arange(15).reshape((3,5)),那么我们可以使用y[0,0]来获取矩阵x的第一行第一列的元素0
x[-1],则表示获取向量x的最后一个元素。

切片

核心要点:X[start:stop:step]
获取一维子数组
x = array([0,1,2,3,4,5,6,7,8,9]),则x[:5]表示获取向量x的前5个元素组成的子数组array([0,1,2,3,4])
获取多维子数组
y = array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]),则y[:2,:2]表示获取矩阵y的前2行的前2列元素组成的子数组array([[0,1],[5,6]])
获取数组的行或列
y[:,0]表示获取矩阵y的第一列,由y[0,:]表示获取矩阵y的第一行;
获取非副本视图的子数组
z = y[:2,:2],则令z[0,0] = 100,那么可以得到z与y的第一行第一列元素都变成了100,在这里可以将z视为y的一个引用;
创建数组的副本
z = y[:2,:2].copy(),则令z[0,0] = 100,那么z的第一行第一列元素为100,y的第一行第一列元素仍然为0。

合并操作

合并向量

x = np.array([1,2,3])
y = np.array([3,2,1])

np.concatenate([x,y]),那么可以得到array([1,2,3,3,2,1])
合并矩阵

A = np.array([[1,2,3],
              [3,2,1]])

np.concatenate([A,A]),那么可以得到

array([[1,2,3],
       [3,2,1],
       [1,2,3],
       [3,2,1]])

可以通过在np.concatenate()内添加axis = 0axis = 1来从不同维度进行合并操作。
垂直方向进行合并操作
z = np.array([4,5,6]),那么np.vstack([A,z])可以得到

array([[1,2,3],
       [3,2,1],
       [4,5,6]])

水平方向进行合并操作

b = np.full((2,2),666)
np.hstack([A,b])

那么可以得到

array([[1,2,3,666,666],
       [3,2,1,666,666]])

垂直与水平方向同时进行合并操作

np.tile([x],(2,1))

由此可以得到

array([[1,2,3,1,2,3],
       [1,2,3,1,2,3]])

分割操作

分割向量
np.split(x,[2]),那么可以得到

arr1 = array([1,2])
arr2 = array([3])

分割矩阵
array = np.split(A,[1]),那么可以得到

arr1 = array([1,2,3])
arr2 = array([3,2,1])

可以通过在np.split()内添加axis = 0axis = 1来从不同维度进行分割操作。
垂直方向进行分割操作
np.vsplit(A,[1]),那么可以得到

arr1 = array([1,2,3])
arr2 = array([3,2,1])

水平方向进行分割操作
np.hsplit(A,[2]),那么可以得到

arr1 = array([[1,2],
              [3,2]])
arr2 = array([[3],
              [1]])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值