numpy(同pytorch-tensor)简单行列操作

学pytorch的时候发现很多地方跟numpy是很像的,所以补了一下基础知识

当想搞清楚一个库的用法的时候,百度或者csdn上看很多例子确实不如直接看原库解析来得更快

一、切片

直接切:

import numpy as np
 
a = np.arange(10)
s = slice(2,7,2)   # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])

输出结果为:

[2  4  6]

 通过冒号分隔切片参数 start:stop:step 来进行切片操作:

b = a[2:7:2]

冒号 : 的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。

二、索引

单个元素索引:

import numpy as np
 
a = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
b = a[5] 
print(b)


输出结果为:

5

————————————————————————————————————————————————————————————

import numpy as np
 
a = np.arange(10)
print(a[2:])
输出结果为:

[2  3  4  5  6  7  8  9]

————————————————————————————————————————————————————————————————
实例
import numpy as np
 
a = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
print(a[2:5])
输出结果为:

[2  3  4]

数组索引:

import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从某个索引处开始切割
print('从数组索引 a[1:] 处开始切割')
print(a[1:])



输出结果为:

[[1 2 3]
 [3 4 5]
 [4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
 [4 5 6]]

 整组数组索引:

以下实例获取数组中(0,0),(1,1)和(2,0)位置处的元素。


import numpy as np 
 
x = np.array([[1,  2],  [3,  4],  [5,  6]]) 
y = x[[0,1,2],  [0,1,0]]  
print (y)


输出结果为:

[1  4  5]

x是一个二维数组,y相当于把x看成一个只有两列的表。

以下实例获取了 4X3 数组中的四个角的元素。 行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]:

import numpy as np 
 
x = np.array([[  0,  1,  2],[  3,  4,  5],[  6,  7,  8],[  9,  10,  11]])  
print ('我们的数组是:' )
print (x)
print ('\n')
rows = np.array([[0,0],[3,3]]) 
cols = np.array([[0,2],[0,2]]) 
y = x[rows,cols]  
print  ('这个数组的四个角元素是:')
print (y)



输出结果为:

我们的数组是:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]


这个数组的四个角元素是:
[[ 0  2]
 [ 9 11]]

实际上,row和cols的写法是可变的,取决于想要的输出形式,若按如下写法:(逻辑上更好理解)

rows = np.array([0, 0, 3, 3])
cols = np.array([0, 2, 0, 2])

 输出结果为:

这个数组的四个角元素是:
[ 0  2  9 11]

三、切片加索引

import numpy as np
 
a = np.array([[1,2,3], [4,5,6],[7,8,9]])
b = a[1:3, 1:3]
c = a[1:3,[1,2]]
d = a[...,1:]
print(b)
print(c)
print(d)


输出结果为:

[[5 6]
 [8 9]]
[[5 6]
 [8 9]]
[[2 3]
 [5 6]
 [8 9]]

四、一些不常用的方法

比如筛掉nan的值,取复数等等

NumPy 高级索引 | 菜鸟教程 

——————————————————————————————————————————

如果import torch

torch.arange = np.arange

torch.tensor = np.array

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值