Python Numpy数组扩展repeat和tile使用实例解析

这篇文章主要介绍了Python Numpy数组扩展repeat和tile使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

numpy.repeat

官方文档

numpy.repeat(a, repeats, axis=None)
Repeat elements of an array.

可以看出repeat函数是操作数组中的每一个元素,进行元素的复制。

例如:

>>> a = np.arange(3)
>>> a
array([0, 1, 2])
>>> np.repeat(a, 2)
array([0, 0, 1, 1, 2, 2])

>>> a = [[0,1], [2,3], [4,5]]
>>> y = np.repeat(a, 2)
>>> y
array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5])

numpy.tile

官方文档

numpy.tile(A, reps)
Construct an array by repeating A the number of times given by reps.

可以看出tile函数是将数组A作为操作对象

例如:

>>> a = np.array([[1,2],[3,4]])
>>> a
array([[1, 2],
    [3, 4]])
>>> np.tile(a, 2)
array([[1, 2, 1, 2],
    [3, 4, 3, 4]])

>>> a = [[0,1], [2,3], [4,5]]
>>> x = np.tile(a, (2,1))
>>> x
array([[0, 1],
    [2, 3],
    [4, 5],
    [0, 1],
    [2, 3],
    [4, 5]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-12-07

讲解Python3中NumPy数组寻找特定元素下标的两种方法

引子 Matlab中有一个函数叫做find,可以很方便地寻找数组内特定元素的下标,即:Find indices and values of nonzero elements. 这个函数非常有用.比如,我们想计算图1中点Q(x0, y0)抛物线的最短距离.一个可以实施的方法是:计算出抛物线上所有点到Q点的距离,找到最小值,用find函数找到最小值对应的下标,即M点横坐标和纵坐标对应的元素的下标,M点到Q点的距离就是最短距离. 首先给出Matlab使用find函数实现的代码: a = linspac

Python打开文件,将list、numpy数组内容写入txt文件中的方法

python保存numpy数据: numpy.savetxt("result.txt", numpy_data); 保存list数据: file=open('data.txt','w') file.write(str(list_data)); file.close() 以上这篇Python打开文件,将list.numpy数组内容写入txt文件中的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

python中找出numpy array数组的最值及其索引方法

在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where,其又是list没有的 首先我们可以得到array在全局和每行每列的最大值(最小值同理) >>> a = np.arange(9).reshape((3,3)) >>> a array([[0, 1, 2], [9, 4, 5], [6, 7, 8]]) >>&

python将txt等文件中的数据读为numpy数组的方法

实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为list并转化为numpy数组 import numpy as np file = open('filename.txt') val_list = file.readlines() lists =[] for string in val_list: string = string.split('\t',3

Python快速转换numpy数组中Nan和Inf的方法实例说明

在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时的一些错误.这里提供一个numpy库函数的用法,使nan和inf能够最简单地转换成相应的数值. numpy.nan_to_num(x): 使用0代替数组x中的nan元素,使用有限的数字代替inf元素 使用范例: >>>import numpy as np >>> a = np.array([[np.nan,np.inf],\ ... [-np.nan,-np.inf]]) >>

Python 取numpy数组的某几行某几列方法

直接分析,如原矩阵如下(1): (1) 我们要截取的矩阵(取其一三行,和三四列数据构成矩阵)为如下(2): (2) 错误分析: 取 C 的1 3行,3 4 列,定义 Z = [0,2] #定义行数 d = [2,3] #定义列数 #代码 C_zd = C[z,d] 则结果为: 由结果分析取的是第一行第三列和第三行第四列的数据,并非我们想要的结果. 正确分析: C_A = c[[0,2]] #先取出想要的行数据 C_A = C_A[:,[2,3]] #再取出要求的列数据 print(C_A) #输

Python numpy实现二维数组和一维数组拼接的方法

撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组. 拼接 3.numpy有很

python+numpy按行求一个二维数组的最大值方法

问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3],[4,5,3]]) # 先求每行最大值得下标 index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算 print(index_max.shape) max = x[range(x.shape[0]), index_max] print(max) # 注

python分治法求二维数组局部峰值方法

题目的意思大致是在一个n*m的二维数组中,找到一个局部峰值.峰值要求大于相邻的四个元素(数组边界以外视为负无穷),比如最后我们找到峰值A[j][i],则有A[j][i] > A[j+1][i] && A[j][i] > A[j-1][i] && A[j][i] > A[j][i+1] && A[j][i] > A[j][i-1].返回该峰值的坐标和值. 当然,最简单直接的方法就是遍历所有数组元素,判断是否为峰值,时间复杂度为O(n^2

linux shell实现求一个多维数组中的最大和最小值

同事发了一道shell题,是求一个多维数组中的最大和最小值 如文件 99file:   33      55      23      56      99 234     234     545     6546    34 11      43      534     33      75 43      34      76      756     33 343     890     77      667     55 我的实现之一: #! /bin/bash echo "the

java高效打印一个二维数组的实例(不用递归,不用两个for循环)

打印1个元素,不让循环变量i++,走出思维定式(执行一次循环体,就i++).public class OneForPrint2DArr { public static void main(String[] args) throws Exception { int[][] a = { { 1, 2, 3 }, { 4, 5} }; for (int i = 0, j = 0; i < a.length;) { System.out.println(a[i][j]); j++; if (j >=

php一维二维数组键排序方法实例总结

本文实例总结了php一维二维数组键排序方法.分享给大家供大家参考.具体方法如下: 在php中数组排序一直是一个老生常谈的问题,下面我们来集中讲一下关于在php中一维数组与二维数组排序的实现程序,相信对大家有一定的参考借鉴价值. 功能:对数组进行重新排序. 说明:冒泡排序 (一维数组)(二维数组某个健排序) 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡

AngularJS使用ng-repeat遍历二维数组元素的方法详解

本文实例讲述了AngularJS使用ng-repeat遍历二维数组元素的方法.分享给大家供大家参考,具体如下: 问题: 最近在做报表的项目,有一种情况是后台返回给我的是一个二维数组,在前台将数据放入到表格中,因为我们用的是angularJS的前台框架,所以利用ng-repeat来实现. 实现方法: 首先在js中: $scope.Week = [[ '云南省 ', 'a', 's', 'd', 'e', 'w','t' ],[ '陕西省 ', 'l', 'p', 'o', 'i', 'u','y'

java实现二维数组转置的方法示例

本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中创建两个数组arraryA.arraryB,arraryB[j][i]=arraryA[i][j]实现数组的转置. 在Out类中编写out()方法,在方法中用for循环遍历实现输出. 具体代码如下: package Tsets; import java.util.*; public class Te

C读txt到二维数组的实现方法

实例如下: #include<stdio.h> #include<stdlib.h> #define maxn 200 void main() { FILE *fp; int s[maxn][maxn]; int i,j; if((fp=fopen("d:\\temp\\test.txt","r"))==NULL) { printf(" can't open"); exit(0); } for(i=0;i<maxn;

C与C++动态分配二维数组的实现方法

C: C中使用函数malloc和free两个函数. //动态分配M*N维 int **a=(int **)malloc(sizeof(int*)*M); for(int i=0;i<M;i++) a[i]=(int *)malloc(sizeof(int)*N); //动态释放 for(int j=0;j<M;j++) free(a[i]); free[a]; C++: C++ 使用关键字new和delete. //动态分配M*N维 int **a=new int *[M]; for(int

JS中取二维数组中最大值的方法汇总

在JavaScript中可以通过内置的 Math.max() 的最大值,但是要从多重数组中取出最大值,还是有一定的难度. 问题描述 假设你有一个数组,而且这个数组中包含了数字的子数组,而我们要做的是从数组中的每个子数组中返回其最大的那个最大数. 基本解决方案 function largestOfFour(arr) { var results = []; // 创建一个results变量来存储 // 创建一个外层循环,遍历外层数组 for (var n = 0; n < arr.length; n