当前位置:网站首页>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)
边栏推荐
- createjs easeljs
- Cloudcompare learning (1) - cloudcompare compilation and common plug-in implementation
- Concurrent programming (VI) ABA problems and solutions under CAS
- [concurrent programming] atomic operation CAS
- [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
- The method for win10 system to enter the control panel is as follows:
- Deeply understand the underlying data structure of MySQL index
- TP5 multi condition sorting
- Monotonic stack -503 Next bigger Element II
- Osgconv tool usage
猜你喜欢
Try to reprint an article about CSDN reprint
Binary to decimal, decimal to binary
Installation of PHP FPM software +openresty cache construction
Final review of Database Principles
[concurrent programming] concurrent tool class of thread
Concurrent programming (V) detailed explanation of atomic and unsafe magic classes
First Servlet
PHP uses foreach to get a value in a two-dimensional associative array (with instances)
Really explain the five data structures of redis
Notes and bugs generated during the use of h:i:s and y-m-d
随机推荐
php public private protected
[concurrent programming] collaboration between threads
file_ put_ contents
[rust notes] 07 structure
Baidu editor ueeditor changes style
Binary to decimal, decimal to binary
How does unity fixedupdate call at a fixed frame rate
MySQL three logs
【Rust笔记】05-错误处理
[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle
Final review of Database Principles
How to delete CSDN after sending a wrong blog? How to operate quickly
22-06-27 西安 redis(01) 安装redis、redis5种常见数据类型的命令
createjs easeljs
MySQL 8
redis集群系列四
Mxone Pro adaptive 2.0 film and television template watermelon video theme apple cmsv10 template
Pit & ADB wireless debugging of vivo real machine debugging
UE4 source code reading_ Bone model and animation system_ Animation process
cres