Say I have a NxN numpy matrix. I am looking for the fastest way of extracting all square chunks (sub-matrices) from this matrix. Meaning all CxC parts of the original matrix for 0 < C < N+1. The sub-matrices should correspond to contiguous rows/columns indexes of the original matrix. I want to achieve this in as little time as possible.
Extratcing all square submatrices from matrix using Numpy
2.2k Views Asked by TweedBeetle At
2
There are 2 best solutions below
0
Quan Gan
On
Tricky enough, but here is an example of extracting all MxM submatrices in a NxN matrix.
import numpy as NP
import numpy.random as RNG
P = N - M + 1
x = NP.arange(P).repeat(M)
y = NP.tile(NP.arange(M), P) + x
a = RNG.randn(N, N)
b = a[NP.newaxis].repeat(P, axis=0)
c = b[x, y]
d = c.reshape(P, M, N)
e = d[:, NP.newaxis].repeat(P, axis=1)
f = e[:, x, :, y]
g = f.reshape(P, M, P, M)
h = g.transpose(2, 0, 3, 1)
for i in range(0, P):
for j in range(0, P):
assert NP.equal(h[i, j], a[i:i+M, j:j+M]).all()
Related Questions in PYTHON-2.7
- Initialize matrix
- Why is my program adding int as string (4+7 = 47)?
- How to save gensim LDA topics output to csv along with the scores?
- Update a text file with ( new words+ \n ) after the words is appended into a list
- Removing URL features from tokens in NLTK
- python, global name not defined
- Why does collections.OrderedDict use try and except to initialize variables?
- Invalid URL: No host supplied : error while using Request.get(url) in Python
- Python GUI application to copy files one location to another location
- Why I receive CERTIFICATE_VERIFY_FAILED from google adwords api?
- Excel worksheet to Numpy array
- Python datetime.now() with timezone
- local variable referenced before assignment in strange condition
- Python 2.7 - find combinations of numbers in a list that add to another number
- Can't install anything with pip2 on Windows 7 due to UnicodeDecodeError
Related Questions in NUMPY
- How can I serialize a numpy array while preserving matrix dimensions?
- store numpy array in mysql
- Trying to save an np array with string and floats, but getting a error
- Does numpy broadcast in *all* of its functions?
- Is there any implementation of hstack in gnumpy
- Mayavi - color vectors based on direction instead of magnitude
- How to install scipy misc package
- Numpy Vs nested dictionaries, which one is more efficient in terms of runtime and memory?
- How to count distance to the previous zero in pandas series?
- Changing the amount of points changes the result of the fft
- Succint way of handling missing observations in numpy.cov?
- Fastest Way to access and put values in matrix
- Enforcing that inputs sum to 1 and are contained in the unit interval in scikit-learn
- Cython speed vs numpy
- Best practice for using common subexpression elimination with lambdify in SymPy
Related Questions in MATRIX
- Initialize matrix
- Delete a column and a row in a square matrix in C
- multiply each columns of a matrix by a vector
- How can I extract the bounds of a bitmap in a canvas from the values in the transformation matrix?
- Find saddle points in Matlab
- Adding appending numpy arrays
- Python: Array subtract Matrix - TypeError: unsupported operand type(s) for -: 'int' and 'list'
- List of coordinates to matrix of distances
- Is there a way to make array entries complex variables in NumPy?
- Determining regression coefficients for data - MATLAB
- Turning matrix into list of integers as a spiral of given matrix
- Summing multiple columns to equal -1,0,1
- How do I get (LaTeX math) typeset matrix with borders in HTML output from *.Rmd?
- MATLAB Creating a symbolic function with matrix elements
- How to multiply 3 matrices using shared memory in Python?
Related Questions in SUBMATRIX
- How do I find the sum of every X rows in a matrix in Matlab
- matlab/numpy submatrix contour
- Extratcing all square submatrices from matrix using Numpy
- Adding two submatrices in Matlab?
- Fast way to extract submatrix from numpy matrix
- Submatrix in C++
- Submatrix in scipy
- Armadillo C++ matrix multiplication with in-place assignment to submatrix
- opencv android java matrix submatrix (ROI Region of Interest)
- Adding a submatrix at a certain location rounds down all entries in the submatrix (python)
- How can import some sub-matrix (sub-array2D) and create a matrix (array2D) according to them with a nested loop in python
- How to get all submatrixes(2x2) from any square matrix using function and then make a new matrix with maximum values from the submatrixes
- Sampling submatrices in R
- Rotate 3D Submatrix Matlab
- Finding biggest negative submatrix in python
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You could use Numpy slicing,
avoiding loops in Numpy, is not a goal by itself. As long as you are being mindful about it, there shouldn't be much overhead.