ndarray object of Numpy Library
1, ndarray object of numpy
One of the most important features of numpy is its
The dimensional array object ndarray is a collection of a series of data of the same type. The index of the elements in the collection starts with the subscript 0
To create an ndarray, you only need to call Numpy's array function:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
Parameter Description:
parameter | explain |
---|---|
object | Array or nested sequence |
dtype | Type of array element |
copy | Whether the object needs to be copied is optional |
order | Create an array style. C is the row direction, F is the column direction, and A is any direction |
subok | By default, an array consistent with the base class type is returned |
ndmin | Specifies the minimum dimension of the generated array |
Test:
a = np.array([1,2,3,4]) #one-dimensional b = np.array([[1,2],[3,4],[5,6]]) # two-dimensional print(a) print(b)
Output:
[1 2 3 4] [[1 2] [3 4] [5 6]]
About parameter ndmin
# Parameter ndmin a1 = np.array([1,2,3], ndmin=1) a2 = np.array([1,2,3], ndmin=2) a3 = np.array([1,2,3], ndmin=3) print(a1) print(a2) print(a3)
result:
[1 2 3] [[1 2 3]] [[[1 2 3]]]
2, Numpy create array
1. Call numpy Empty (shape, dtype, order) method
Note: order has two values. C and F represent row priority and column priority respectively
numpy.empty([3,2], dtype = int)
# Mode 1: numpy empty() a4 = np.empty([3,2], dtype = int) #[3,2] represents three rows and two columns, that is, a two-dimensional array with three elements print(a4)
Result: the value of random output is not initialized
[[ 28090704 0] [ 27547584 140697935844848] [140697954999808 140697982180144]]
2.numpy.zeros()
The creation method is the same as empty(). The elements after creating an array of specified size are filled with 0
# Mode 2: numpy zeros() a5 = np.zeros([3,2], dtype = int) print(a5)
result:
[[0 0] [0 0] [0 0]]
3.numpy.ones()
# Mode 3: numpy ones() a6 = np.ones([3,2], dtype=int) print(a6)
result:
[[1 1] [1 1] [1 1]]
4.numpy.asarray(), create from the existing array
# Mode 4: numpy Asarray(), create from the existing array array = [1,2,3] a7 = np.asarray(array, dtype=float) print(a7)
result:
[ 1. 2. 3.]
5.numpy.frombuffer: used for dynamic array implementation
# Mode 5: numpy Frombuffer: used for dynamic array implementation # Parameter Description: count -- "number of reads per time, - 1 represents all data, and offset --" starts indexing a8 = np.frombuffer(b"hello world", dtype='S1', count=1, offset=0) print(a8)
result:
[b'h']
6.numpy.fromiter: create from iterator
# Mode 6: numpy Fromiter: create from iterator it = iter(array) a9 = np.fromiter(it, dtype=float, count=-1) print(a9)
result:
[ 1. 2. 3.]
7.numpy.arange()
# Mode 7: numpy arange() a0 = np.arange(10,20,2) print(a0)
result:
[10 12 14 16 18]
3, Numpy slice and index
Take a chestnut
s = slice(2,7,2) #[2 4 6] b1 = np.arange(10) #[0 1 2 3 4 5 6 7 8 9] print(b1[s]) # [2 4 6]
b1[s]: this method is similar to that b1 is the array to be sliced, s is the index of the slice, and the value of b1 is retrieved according to the index of S
1. Use of colon ':'
# Use of: print(b1[1:]) print(b1[1:2]) print(b1[:3]) result: [1 2 3 4 5 6 7 8 9] [1] [0 1 2]
Colon is similar to slicing an array
Think: what if it's a two-dimensional or three-dimensional array?
2. Use of colons in multidimensional arrays
# Multidimensional array colon: use of b2 = np.array([[1,2,3], [4,5,6], [7,8,9]]) print(b2[1:]) print(b2[1:2]) print(b2[:2]) # result [[4 5 6] [7 8 9]] [[4 5 6]] [[1 2 3] [4 5 6]]
In a multi-dimensional array, the same is true. Take out the outermost layer by slice
3. Use of ellipsis
Thinking: the above use: slice can take out the outer data. What if you want to take out the internal data for a two-dimensional data
For example: b2 = [[1,2,3], [4,5,6],[7,8,9]], want to take out [8,9]
print(b2[2][1:]) # result [8,9]
What if you want to take out [2,3], [5,6], [8,9]
Use the above slice: can it be realized
print(b2[:,1:]) #result [[2 3] [5 6] [8 9]]
In addition, the omission of [6 7 8 9] can also be used
If you need all the rows for a row, you can use the ellipsis... Instead of ":"
print(b2[...,1:]) #result [[2 3] [5 6] [8 9]]
Similarly, if you want only the data in the second row, you can use ellipsis on the column
print(b2[1,...]) # result [4 5 6]
4. Integer array index
print(b[[0,1,2],[0,1,0]]) result: [1 5 7]
The integer array index is to combine the indexes at the same position for segmentation. For example, for b2 = [[1,2,3], [4,5,6],[7,8,9]], it is divided according to the integer indexes [[0,1,2], [0,1,0]], that is to get the values of [[0,0], [1,1], [2,0]] of b2
5. Boolean index
# Boolean index print(b2[b2>5]) # result [6 7 8 9]
Filter out the values with B2 > 5