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_[]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。