1.numpy的切片
X[m,n],表示X的第m维中的第n段数据。
也可以按切片写法:
X[m:n,k:v],第一维从m到n-1,第二维取从k到v-1
X[:,n],表示第一维的m全部取,第二维取第n段数据,如果是矩阵,就是取第n列。

X[:,list],第二维按照list里面的数字索引取

import numpy as np
np.random.seed(1)
X = np.random.randn(5,3)
print(X)

X是5行3列矩阵,结果:

[[ 1.62434536 -0.61175641 -0.52817175]
 [-1.07296862  0.86540763 -2.3015387 ]
 [ 1.74481176 -0.7612069   0.3190391 ]
 [-0.24937038  1.46210794 -2.06014071]
 [-0.3224172  -0.38405435  1.13376944]]

随机得到一个列表:

np.random.seed(1)
permutation = list(np.random.permutation(3))
print(permutation)

permutation列表是:
[0, 2, 1]

按X[:,list]方式来取数据,也就是第一维全部取,第二维按照list的索引来取:

shuffed_X = X[:,permutation]
print(shuffed_X)

结果是:

[[ 1.62434536 -0.52817175 -0.61175641]
 [-1.07296862 -2.3015387   0.86540763]
 [ 1.74481176  0.3190391  -0.7612069 ]
 [-0.24937038 -2.06014071  1.46210794]
 [-0.3224172   1.13376944 -0.38405435]]

因为这里list其实是从0-2的,其维度与n一样,实际上就是随机地把列进行打乱。

2.np.zeros_like(X)函数
zeros_like(X)函数返回一个与输入X维度一致的变量(或者是向量、矩阵、多维向量),且里面每一个元素赋值全部为0.

3.np.arange([start, ]stop, [step, ]dtype=None)
在给定的时间间隔内返回均匀间隔的值。

在半开区间[start, stop)内产生值 (换句话说,包括开始但不包括停止的区间)。对于整数参数,该函数等同于Python内置的 范围函数,但返回一个ndarray而不是一个列表
步长可以是非整数步长(如0.1)时,但容易导致结果往往不一致,这些情况下最好使用linspace。

参数:
start:数字,可选
间隔开始。间隔包括这个值。默认的起始值是0。
stop:数字
间隔结束。间隔不包括此值,但在某些情况下,步骤不是整数,浮点舍入会影响out的长度。
dtype:步长,可选
值之间的间隔。对于任何输出出来,这是两个相邻值之间的距离,进行[I + 1] - 出[I] 。默认步长为1.如果指定了step,则还必须给出start。
dtype:dtype
输出数组的类型。如果没有给出dtype,则从其他输入参数推断数据类型。
返回:
类型:ndarray
数组间距均匀的值。
对于浮点参数,结果的长度是 ceil((stop - start)/ step)。由于浮点溢出,此规则可能导致out的最后一个元素大于stop。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,5,0.1)
y = np.arange(1,5,0.1)
print(x)
print(type(x))
结果:
[1.  1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.  2.1 2.2 2.3 2.4 2.5 2.6 2.7
 2.8 2.9 3.  3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.  4.1 4.2 4.3 4.4 4.5
 4.6 4.7 4.8 4.9]
<class 'numpy.ndarray'>

4.ravel()平展函数
ravel()将多维数据展平为一维数据,可以选择不同的数据索引方式。
官方文档:https://numpy.org/doc/stable/...

x = np.array([[1,2],[3,4]])
print(x)
x = np.ravel(x)
print(x)

结果:

[[1 2]
 [3 4]]
[1 2 3 4]

此外,ravel() 与flatten()都是展平数据,后者是copy值,修改不影响原来的数据。

5.matplotlib:plt.contourf(画等高线)

numpy np.c_[]


1 声望0 粉丝

引用和评论

0 条评论