当前位置:网站首页>Notes | numpy-10 Iterative array
Notes | numpy-10 Iterative array
2022-07-03 04:49:00 【CY3761】
#%% md
NumPy Iterator object numpy.nditer Provides a flexible way to access one or more array elements .
The basic task of iterator is to access array elements .
So let's use arange() Function to create a 2X3 Array , And use nditer Iterate over it b
#%%
import numpy as np
a = np.arange(6).reshape(2, 3) # 2r3c
a
#%%
# Output through iteration
# The above example is not a standard C perhaps Fortran The order , The order of selection is consistent with the array memory layout , This is done to improve the efficiency of access , The default is row order first (row-major order, Or rather, C-order)
for _ in np.nditer(a): # First floor for You can output the entire array | Output line by line ( level )
print(_, end=', ')
#%%
a.T # reverse
#%%
# It reflects that by default, you only need to access each element , Regardless of their specific order . We can see this by iterating the transpose of the above array , And with C Sequential access array transposed copy Compare the ways
# a and a.T The traversal order is the same , That is, they are stored in the same order in memory
for _ in np.nditer(a.T): # First floor for You can output the entire array | have no feelings The order of output is the same | Using or a This iterates
print(_, end=', ')
#%%
# however a.T.copy(order = 'C') The traversal results are different , That's because it's different from the first two storage methods , The default is to access by line
for _ in np.nditer(a.T.copy(order='C')): # First floor for You can output the entire array | The order of output is different | This is output line by line ( level ) This is using replication ( Copy sort changes )
print(_, end=', ')
#%%
# Control traversal order
# for x in np.nditer(a, order='F'):Fortran order, That is, sequence first
# for x in np.nditer(a.T, order='C'):C order, That is, line order takes precedence
#%%
import numpy as np
a = np.arange(0, 60, 5) # 0~60( Not included 60) step 5
a
#%%
a = a.reshape(3, 4) # 3r4c
a
#%%
b = a.T
b # 4r3c
#%%
for _ in np.nditer(b):
print(_, end=', ') # vertical ( Column )
#%%
c = b.copy(order='C')
c
#%%
for _ in np.nditer(c):
print(_, end=', ') # level ( That's ok )
#%%
c = b.copy(order='F')
c
#%%
for _ in np.nditer(c):
print(_, end=', ') # vertical ( Column )
#%%
# You can explicitly set , Mandatory nditer Objects use some sort of order
for _ in np.nditer(a, order='C'):
print(_, end=', ') # level ( That's ok )
#%%
for _ in np.nditer(a, order='F'):
print(_, end=', ') # vertical ( Column )
#%% md
## Change the value of the element in the array
nditer Object has another optional parameter op_flags. By default ,nditer The array to be iterated is considered as a read-only object (read-only), In order to traverse the array at the same time , The implementation of array elements is worth modifying , Must specify read-write perhaps write-only The pattern of
#%%
import numpy as np
for _ in np.nditer(a, op_flags=['readwrite']):
_[...] = 2 * _ # All elements multiply 2 operation
a
#%% md
## Use an external loop
#%%
# nditer Class constructor has flags Parameters , It can accept the following values
""" Parameters describe c_index Can track C Index of order | That's ok f_index Can track Fortran Index of order | Column multi_index Each iteration can track one index type external_loop The given value is a one-dimensional array with multiple values , Instead of a zero dimensional array """
#%%
for _ in np.nditer(a, flags=['external_loop'], order='F'):
print(_, end=', ')
#%% md
## Broadcast iteration
#%%
# If two arrays are broadcast ,nditer Composite objects can iterate over them at the same time . Hypothetical array a The dimensions are 3X4, Array b The dimensions are 1X4 , Then use the following iterators ( Array b Broadcast to a Size )
import numpy as np
a = np.arange(0, 60, 5).reshape(3, 4)
a
#%%
b = np.array([1, 2, 3, 4], dtype=int)
b
#%%
# To iterate This makes it easy to check the calculation method
for x,y in np.nditer([a, b]):
print('x = %d, y = %d' % (x, y))
#%%
边栏推荐
- Number of 1 in binary (simple difficulty)
- C language self-made Games: Sanzi (tic tac toe chess) intelligent chess supplement
- [set theory] binary relationship (binary relationship notation | binary relationship from a to B | number of binary relationships | example of binary relationship)
- String matching: find a substring in a string
- 【SQL注入】联合查询(最简单的注入方法)
- 2022 registration examination for safety production management personnel of hazardous chemical production units and examination skills for safety production management personnel of hazardous chemical
- 2022 chemical automation control instrument examination summary and chemical automation control instrument certificate examination
- [SQL injection] joint query (the simplest injection method)
- JS multidimensional array to one-dimensional array
- STM32 reverse entry
猜你喜欢

The usage of micro service project swagger aggregation document shows all micro service addresses in the form of swagger grouping

The least operation of leetcode simple problem makes the array increment

stm32逆向入门

2022 a special equipment related management (elevator) analysis and a special equipment related management (elevator) simulation test

Thesis reading_ Tsinghua Ernie
![[luatos sensor] 1 light sensing bh1750](/img/70/07f29e072c0b8630f92ec837fc12d5.jpg)
[luatos sensor] 1 light sensing bh1750

Leetcode simple problem delete an element to strictly increment the array

Learn to use the idea breakpoint debugging tool

Uipath practice (08) - selector

Shuttle + Alluxio 加速内存Shuffle起飞
随机推荐
Truncated sentences of leetcode simple questions
[PCL self study: filtering] introduction and use of various filters in PCL (continuously updated)
2022 chemical automation control instrument examination summary and chemical automation control instrument certificate examination
Market status and development prospects of the global autonomous marine glider industry in 2022
Retirement plan fails, 64 year old programmer starts work again
Learning practice: comprehensive application of cycle and branch structure (I)
Market status and development prospect prediction of the global fire hose industry in 2022
论文阅读_ICD编码_MSMN
What is UUID
Current market situation and development prospect forecast of global UV sensitive resin 3D printer industry in 2022
Distinguish between releases and snapshots in nexus private library
2022 Shandong Province safety officer C certificate examination content and Shandong Province safety officer C certificate examination questions and analysis
[SQL injection point] location and judgment of the injection point
Shell script Basics - basic grammar knowledge
I've been in software testing for 8 years and worked as a test leader for 3 years. I can also be a programmer if I'm not a professional
SSM based campus part-time platform for College Students
[PHP vulnerability weak type] basic knowledge, PHP weak equality, error reporting and bypassing
[USACO 2009 Dec S]Music Notes
【XSS绕过-防护策略】理解防护策略,更好的绕过
String matching: find a substring in a string