当前位置:网站首页>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)
边栏推荐
- Vscode, idea, VIM development tool shortcut keys
- OpenGL learning notes
- LinkedList set
- [redis] redis persistent RDB vs AOF (source code)
- Cesium for unreal quick start - simple scenario configuration
- 【Rust 笔记】11-实用特型
- Unity editor expansion - window, sub window, menu, right-click menu (context menu)
- Dom4j traverses and updates XML
- DOM 渲染系统(render mount patch)响应式系统
- Osganimation library parsing
猜你喜欢

Monotonic stack -84 The largest rectangle in the histogram

Markdown learning

100 GIS practical application cases (78) - Multi compliance database design and data warehousing
![[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle](/img/b7/7bf2a4a9ab51364352aa5e0a196b6d.jpg)
[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle

Final review of Database Principles

Animation_ IK overview

Sending and receiving of request parameters

VIM learning notes from introduction to silk skating

Campus lost and found platform based on SSM, source code, database script, project import and operation video tutorial, Thesis Writing Tutorial

Really explain the five data structures of redis
随机推荐
Collection interface
Unity interactive water ripple post-treatment
[rust notes] 07 structure
Mortgage Calculator
ES6 promise learning notes
Dom4j遍历和更新XML
【Rust笔记】06-包和模块
Find the intersection of line segments
[concurrent programming] thread foundation and sharing between threads
Redis cluster series 4
Thymeleaf 404 reports an error: there was unexpected error (type=not found, status=404)
分配异常的servlet
Pit & ADB wireless debugging of vivo real machine debugging
TP5 order multi condition sort
Unity editor expansion - controls, layouts
[rust notes] 11 practical features
Concurrent programming (V) detailed explanation of atomic and unsafe magic classes
Phpstudy 80 port occupied W10 system
[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle
Unity editor expansion - draw lines