Although NumPy users are rarely interested in the span information of arrays, they are an important factor in building a non-replicated array view. The span can even be negative, which makes the array move back in memory, such as in the slice obj[::-1] or obj[:,::-1].
Advanced Array Operations
In addition to the fancy index, slice, Boolean conditional take subset and other operations, the array has many ways to operate. While the advanced functions in pandas can handle many of the heavy tasks in data analysis, sometimes you still need to write some data algorithms that are not found in the existing libraries.
Operations with reshape to convert one-dimensional arrays to multidimensional arrays are often referred to as flattening (flattening) or diffuse (raveling):
For common connection operations, NumPy provides some more convenient methods, such as Vstack and Hstack. Therefore, the above operation can also be expressed as:
Stacking auxiliary classes: R_ and C_
The NumPy namespace has two special objects, one r_ and c_, that make stacking operations of arrays more concise:
Repeated operations of elements: Title and repeat
The tools that repeat an array to produce larger arrays are mainly the repeat and tile functions. Repeat will repeat the elements in the array for a certain number of times, resulting in a larger array:
The tile feature is a copy of the stacked array along the specified axis. You can visualize it as a "paving tile":
Equivalent functions for fancy indexes: take and put
In the 4th chapter we have said that one way to get and set a subset of arrays is to use a fancy index with an array of integers:
The put does not accept the axis parameter, it only indexes on the flattened version of the array (one-dimensional, C-order) (which should be improved in the future). Therefore, it is a good idea to use a fancy index when you need to set elements with other inline indexes.
Broadcasting
Broadcast (broadcasting) refers to how arithmetic operations are performed between arrays of different shapes. It's a very powerful feature, but it's also easy to misunderstand, even for seasoned veterans. The simplest broadcast occurs when a scalar value is merged with an array:
The principle of broadcasting: If the trailing edge dimension of two arrays (trailing dimension, which is the dimension from the end of the calculation), corresponds to the length of the axis or the length of one of the parties is 1, they are considered broadcast-compatible. Broadcasts are performed on a dimension that is missing and/or length 1.
Ufunc Advanced Applications
While many numpy users will only use the fast element-level operations provided by common functions, there are actually some high-level usages of general functions that allow us to throw out loops and write more concise code.
Ufunc instance method
Each of the NumPy's $ two ufunc has some special methods for performing specific vectorization operations. Reduce accepts an array parameter and aggregates its values through a series of two-tuple operations (which can indicate axial). For example, we can sum each element in an array with np.add.reduce:
Custom Ufunc
There are two tools for you to use your custom functions like Ufunc. Numpy.frompyfunc accepts a python function and two integers representing the number of input and output parameters, respectively. For example, here is a simple function that implements element-level addition:
You are welcome to follow my blog or public number: Https://home.cnblogs.com/u/Python1234/Python Learning Communication
If you need some video material or source code can add group: 125240963
Python's NumPy Advanced app!