找到两个两个数组下标相等和不相等的下标位置,主要借助Python的第三方库
numpy
来实现,numpy作为Python的第三方库还是非常高效的,而且内置了许多的函数,方便使用。
import numpy as np
if __name__ == "__main__":
a = np.array([1,2,3,4,5])
b = np.array([1,2,3,3,4])
index = np.arange(0,5)
print(index[a == b])
print(index[a != b])
[0 1 2]
[3 4]
找到两个两个数组下标相等和不相等的下标位置,主要借助Python的第三方库numpy来实现,numpy作为Python的第三方库还是非常高效的,而且内置了许多的函数,方便使用。import numpy as npif __name__ == "__main__": a = np.array([1,2,3,4,5]) b = np.array([1,2,3,3,4]) ...
>>> np.argsort(x)
array([4, 1, 2, 3, 0], dtype=int64)
>>> x[_] #根据argsort所得下标去访问原来的数组x就得到排序后的数组
array([ 4, 6, 7, 9, 10])
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2...
Matlab中有一个函数叫做find,可以很方便地寻找数组内特定元素的下标,即:Find indices and values of nonzero elements。
这个函数非常有用。比如,我们想计算图1中点Q(x0, y0)抛物线的最短距离。一个可以实施的方法是:计算出抛物线上所有点到Q点的距离,找到最小值,用find函数找到最小值对应的下标,即M点横坐标和纵坐标对应的元素的下标,...
def find_samenumber(list1,list2):
A = set(list1).intersection(set(list2)) #交集
B = set(list1).union(set(list2)) # 并集
C = set(list1).difference(set(list2)) #差集,在list1中但不在list2中的
元素
D = set(list2).difference(set(list1)) #差集,在list2中但不在list1中的
元素
目录即将用到的函数与使用GPU有关的函数检查GPU是否可用输出可用GPU的个数输出GPU的信息输出当前GPU序号指定使用GPUPytorch中与矩阵等有关的数学运算函数torch.unsqueeze()神经网络类的定义与使用
即将用到的函数
与使用GPU有关的函数
检查GPU是否可用
torch.cuda.is_available()
若输出为True,则表明GPU可用。
输出可用GPU的个数
torch.cuda.device_count()
输出GPU的信息
torch.cuda.get_devic
如果觉得
Python慢,那么首先应该想到是不是没有用对。
Numpy是
Python中自带的一个数值计算库,包含了大量数值计算的常用方法。其底层大量使用C/C++(超过50%的代码量),矩阵计算调用LAPACK库(Fortran),同时在大量代码优化的层面做了工作,使得其内置方法速度奇快。
Numpy的设计也颇具人性化, 有许多具有特色又好用的方法可供使用。其中以arg开头函数就是专门为返回
下标(集)而设计的,总共有5个这样的函数,它们简单易用,在许多问题里可以将程序极度简化,从而提高我们的工作效率。
误区:本来以为能像matlab那样直接索引就返回呢,没想到竟然找了半天没找到能返回重复数据的函数,在网上找到了一个很好的程序,记录下来:
1.把one-hot编码后的数据恢复
ytest_label = [one_label.tolist().index(1) for one_label in Y_test] #one-hot编码的生成与恢复
2.返回重复数据的下标
class Solution(object): #python 列表返回重复数据的下标
def searchRange(self
# 定义两个二维
数组
arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
arr2 = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
# 遍历
数组,
找到相等的
下标
for i in range(len(arr1)):
for j in range(len(arr1[i])):
if arr1[i][j] == arr2[i][j]:
# 输出
相等的
元素
print(arr1[i][j])
这段代码会输出
数组 `arr1` 和 `arr2` 中
下标相等的
元素。如果两个
数组的大小不一致,可以先判断它们的大小是否相同。