当前位置:网站首页>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)
边栏推荐
- Life cycle of Servlet
- [concurrent programming] working mechanism and type of thread pool
- JS ternary operator - learning notes (with cases)
- Concurrent programming (III) detailed explanation of synchronized keyword
- [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
- PHP mnemonic code full text 400 words to extract the first letter of each Chinese character
- Osgearth topographic shading map drawing
- [concurrent programming] Table hopping and blocking queue
- Solution of 300ms delay of mobile phone
- Really explain the five data structures of redis
猜你喜欢
Simple demo of solving BP neural network by gradient descent method
Unity interactive water ripple post-treatment
Concurrent programming (VI) ABA problems and solutions under CAS
单调栈-503. 下一个更大元素 II
OpenGL learning notes
Mortgage Calculator
Binary to decimal, decimal to binary
Dom4j traverses and updates XML
Es8 async and await learning notes
Try to reprint an article about CSDN reprint
随机推荐
[concurrent programming] thread foundation and sharing between threads
Explain sizeof, strlen, pointer, array and other combination questions in detail
注解简化配置与启动时加载
Talking about: is the HashSet set ordered or disordered /hashset set unique, why can we store elements with the same content
First Servlet
Mxone Pro adaptive 2.0 film and television template watermelon video theme apple cmsv10 template
How to delete CSDN after sending a wrong blog? How to operate quickly
[concurrent programming] concurrent tool class of thread
Osgearth starry background
Chocolate installation
Simple demo of solving BP neural network by gradient descent method
22-06-28 Xi'an redis (02) persistence mechanism, entry, transaction control, master-slave replication mechanism
Solution of 300ms delay of mobile phone
Really explain the five data structures of redis
Analysis of Alibaba canal principle
MySQL three logs
Unity editor expansion - scrolling list
Monotonic stack -503 Next bigger Element II
[concurrent programming] atomic operation CAS
[public key cryptography] ECC elliptic cryptosystem (implementing ElGamal encryption method)