当前位置:网站首页>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))
#%%
边栏推荐
- Why should programmers learn microservice architecture if they want to enter a large factory?
- Golang -- realize file transfer
- 2022 tea master (intermediate) examination questions and tea master (intermediate) examination skills
- Do you know UVs in modeling?
- Market status and development prospect prediction of global neutral silicone sealant industry in 2022
- Contents of welder (primary) examination and welder (primary) examination in 2022
- [luatos sensor] 2 air pressure bmp180
- MPM model and ab pressure test
- ZABBIX monitoring of lamp architecture (3): zabbix+mysql (to be continued)
- 论文阅读_清华ERNIE
猜你喜欢
Review the configuration of vscode to develop golang
Thesis reading_ Chinese medical model_ eHealth
Employee attendance management system based on SSM
逆袭大学生的职业规划
Why should programmers learn microservice architecture if they want to enter a large factory?
MediaTek 2023 IC written examination approved in advance (topic)
Preparation for school and professional cognition
Valentine's day limited withdrawal guide: for one in 200 million of you
FISCO bcos zero knowledge proof Fiat Shamir instance source code
[set theory] relational representation (relational matrix | examples of relational matrix | properties of relational matrix | operations of relational matrix | relational graph | examples of relationa
随机推荐
7. Integrated learning
Career planning of counter attacking College Students
Sdl2 + OpenGL glsl practice (Continued)
AWS VPC
Games101 Lesson 9 shading 3 Notes
Summary of training competition (Lao Li's collection of questions)
2022 new examination questions for the main principals of hazardous chemical business units and examination skills for the main principals of hazardous chemical business units
C language self-made Games: Sanzi (tic tac toe chess) intelligent chess supplement
document. The problem of missing parameters of referer is solved
【PHP漏洞-弱类型】基础知识、php弱相等、报错绕过
Leetcode simple question: check whether the string is an array prefix
[PHP vulnerability weak type] basic knowledge, PHP weak equality, error reporting and bypassing
SSM based campus part-time platform for College Students
MediaTek 2023 IC written examination approved in advance (topic)
STM32 reverse entry
JDBC database operation
Market status and development prospect forecast of global button dropper industry in 2022
联发科技2023届提前批IC笔试(题目)
Day 51 - tree problem
Why does I start with =1? How does this code work?