当前位置:网站首页>Slice and index of array with data type
Slice and index of array with data type
2022-07-03 08:49:00 【Thebluewinds】
Numpy Array basic index and slice attached ndarray Data type of
One 、 Slicing of arrays
Slice of the list
In understanding numpy Before the array slice of , Let's first look at list Slicing operation . obviously , Slicing will copy the selection of the original array and assign it to a new variable list_slice, In this way, when operating on slices , The original list value will not change .
list = [1 for x in range(10)]
print(list)
list_slice = list[3:5]
list_slice[1] = 12
print(list)
print(list_slice)
""" output: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [1, 12] """
Automatic propagation of array slices
Perform slicing operations, such as arr[2:3]=1 when , This assignment will be automatically propagated to the original array . For example, the following operations :
First create an all one array . Then on arr Slice and give another variable arr_slice. Then on arr_slice Assign a value to the second value of , Then the output arr. You can go to the original array arr It has also changed . This explanation , We are in the process of slicing , An array slice is just a reduced view of the original array . It means , Slicing does not copy data , Any numerical changes in the slice will be reflected in the original array .
arr_slice = arr[3:5]
arr_slice[1]=12
print(arr)
# output : [ 1. 1. 1. 1. 12. 1. 1. 1. 1. 1.]
Two 、 Boolean index
First, let's look at a failed case :
You can see , The output result is false, Note: Boolean index operation cannot be directly performed on the list .
import numpy as np
name = ['wuqian', 'hua','wuqian', 'wanglihon']
date = np.random.randn(4,4)
name == 'wuqian'
#output:False
You should first convert the character list into array type .
import numpy as np
name = np.array(['wuqian', 'hua','wuqian', 'wanglihon'])
data = np.random.randn(4,4)
name == 'wuqian' # This operation is the same as arithmetic operation , Array comparison operations are also vectorized , Will be compared one by one , Then the output True or False
# The output is a Boolean array
""" output:array([ True, False, True, False]) """
# Then the Boolean array can index the array
data[name == 'wuqian']
""" The output is data In the corresponding Boolean array of data True Location data . # output: array([[-0.05095068, -0.21921446, 0.30479235, 0.07790257], [-0.46580753, -0.3457661 , -0.40843969, -0.97014426]]) """
One point that needs great attention is
Use this index , The length of Boolean array must be consistent with the axis length of root index .
In addition, it can be used flexibly &、|、!= Boolean arithmetic symbols such as non, or greater than less than , Here's an example :
huairen = (name == 'wuqian')|(name = 'hua')
name !='wuqian'
score = np.array([100, 99, 78, 12, 0, 65])
score = score.astype(np.unicode_)
score[score>'60'] = ' pass '
score
# output: array(['100', ' pass ', ' pass ', '12', '0', ' pass '], dtype='<U11')
3、 ... and 、Ndarray Data type of
1. Data type view
arr1 = np.array([1,3,4])
arr1.dtype
# If no specific data type is specified , It's usually float64
Data type symbol
string_ Fixed length string type , One byte per character
unicode_ Fixed length unicode type , The number of bytes depends on the platform used
float64 Standard single precision floating point numbers
…
2. How to change the data type
You can specify the data type when creating data :
arr = np.array([1,3,4,1],dtype = np.int64)
If the array has been established, it needs to be changed , You can do the following :
arr = arr.astype(np.unicode)
边栏推荐
- Downward compatibility and upward compatibility
- Monotonic stack -503 Next bigger Element II
- 100 GIS practical application cases (78) - Multi compliance database design and data warehousing
- Deep parsing (picture and text) JVM garbage collector (II)
- 【Rust 笔记】10-操作符重载
- [MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle
- [set theory] order relation (total order relation | total order set | total order relation example | quasi order relation | quasi order relation theorem | bifurcation | quasi linear order relation | q
- 单调栈-84. 柱状图中最大的矩形
- Gif remove blank frame frame number adjustment
- How to deal with the core task delay caused by insufficient data warehouse resources
猜你喜欢

Monotonic stack -503 Next bigger Element II

VIM learning notes from introduction to silk skating

Drawing maze EasyX library with recursive backtracking method

Dom4j traverses and updates XML

单调栈-84. 柱状图中最大的矩形

Query XML documents with XPath

Message queue for interprocess communication

Concurrent programming (III) detailed explanation of synchronized keyword

Mortgage Calculator

Unity editor expansion - draw lines
随机推荐
Osgearth topographic shading map drawing
Creation of osgearth earth files to the earth ------ osgearth rendering engine series (1)
Unity interactive water ripple post-treatment
Unity editor expansion - scrolling list
DOM 渲染系统(render mount patch)响应式系统
MySQL three logs
Redux - learning notes
[concurrent programming] atomic operation CAS
Osganimation library parsing
Notes on understanding applets 2022/7/3
Drawing maze EasyX library with recursive backtracking method
TP5 multi condition sorting
Downward compatibility and upward compatibility
PHP mnemonic code full text 400 words to extract the first letter of each Chinese character
[concurrent programming] thread foundation and sharing between threads
MySQL index types B-tree and hash
How to deal with the core task delay caused by insufficient data warehouse resources
Concurrent programming (VI) ABA problems and solutions under CAS
[concurrent programming] concurrent tool class of thread
22-06-27 西安 redis(01) 安装redis、redis5种常见数据类型的命令