本次学习到以后可能会用到的基本函数
# 1. tf.where()
import tensorflow as tf
a = tf.constant([1, 2, 3, 1, 1])
b = tf.constant([0, 1, 3, 4, 5])
c = tf.where(tf.greater(a, b), a, b) # 若a>b(由greater函数充当这里的条件,
# greater就是比较它里面的元素,左边是否大于右边,是则返回1),返回a对应位置的元素,
# 否则返回b对应位置的元素
print("c:", c)
where函数返回一个张量,满足第一个参数(条件)就返回第二个参数的值,否则就返回第三个参数的值。
上述结果如下:
np.random.RandomState.rand(维度) 默认为1,产生标量
# np.random.RandomState() seed 保证随机因子一致,加不加无所谓
# np.random.RandomState.rand(维度) 默认为1,产生标量
rdm = np.random.RandomState(seed=1)
a = rdm.rand()
b = rdm.rand(2, 3)
print("a:", a)
print("b:", b)
np.vstack(数组1, 数组2),作用:将两个数组垂直方向叠加
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.vstack((a, b))
print("c:\n", c)
import numpy as np
x, y = np.mgrid[1:3:1, 2:4:0.5]
grid = np.c_[x.ravel(), y.ravel()]
print("x:", x)
print("y:", y)
print("grid:\n", grid)
np.mgrid[]是构建网格的过程,其中1:3:1表示从1到3取步长为1,也就是1、2 这两个值(左闭右开)。2:4:0.5就是从2到4步长为0.5,也就是2、2.5、3、3.5四个数。经过该函数可以生成一个类似下图的网格,你可以使用一个变量承接这个函数,也可以像代码里那样用x、y两个变量承接。
这个图是我画出来方便理解的,也就是说mgrid()函数第一个元素确立了x的两个值,而该函数的第二个元素确立了y轴的4个值,它们两两结合就可以生成8个点坐标。而该函数返回的值如果用一个未知数承接,是这样的:
y = np.mgrid[1:3:1, 2:4:0.5]
结果:
这是个(3,4)维矩阵,如果用x,y一起接收这个函数,可以得到:
也只是剥开了一层衣服。
#############################################
好,介绍下一个函数x.ravel()
该函数是将x矩阵拉伸为一维向量的过程。
np.c_函数是将其拼接的过程,将两个一维向量拼接坐标的形式。
这三个函数一起使用就可以自己创建网格了。