Python 2 Numpy
[TOC]
np.zeros
np.zeros(size) 初始化为长度为size,内容为0的矢量「秩=1」==》既不是行向量也不是列向量【a.T=a即可以验证】
a = np.zeros(array_size)
np.zero(size_x, size_y) 初始化为二维的「秩=2」==》如果让此时的size_y=1,那就是个列向量;如果让此时的size_x=1,那就是个行向量
![image-20201206171734156](/Users/aczy156/Library/Application Support/typora-user-images/image-20201206171734156.png)
np.random.rand(size)/ np.random/randn(size) 初始化一个长度为size,内容为0~1随机数(精确说是高斯变量)矢量==》既不是行向量也不是列向量【a.T=a即可以验证】
a = np.random.rand(array_size)
print(a, len(a))
# 成功初始化一个矢量/数据 输出的是[xxx, xxx, ……, xxx], array_size
np.dot(array_a, array_b) 做矢量/向量的乘积(点乘)=》
- 可以是下边例子的两个长度为array_size的一维向量
- 也可以是只要是符合矩阵乘积规则的都OK,例如(m, r) * (r, n) / (m, a) * (a, n)
a = np.random.rand(array_size)
b = np.random.rand(array_size)
c = np.dot(a, b)
np 广播
a = np.random.rand(array_size)
c = a+5 # 加上一个常数但是numpy会自动转换成一个n为向量,来和前面的格式对齐,最后就是[a[0]+5, a[1]+5, ……]
np.exp/np.expm1/np.log/np.log1p 做//做对数logv1,logv2……
v = np.zero(100)
# 做指数运算
u = np.exp(v)
# 比较特殊的一个指数运算:expm1(x) = exp(x)-1
u = np.expm1(v)
# 做对数运算
u = np.log(v)
# 比较特殊的一个对数运算:log1p(x) = log(x+1)
u = np.log1p(v)
np.abs 为数组中的所有元素取绝对值
u = np.abs(v)
np.maximum 为数组中的所有元素取和另一个元素对比之后的更大的值
u = np.maximum(v, 0) # 如果v[i] > 0,取v[i];如果v[i] < 0,取0
np.array
np.max
np.sum
np.nditer (把多维的拍成一维的)
np.concatenate((a, b))
区分:pd.concat([a, b], axis=?)
区别:np的函数的两个参数是用括号给扩起来的,而pd的concat函数是把需要连接起来的都放进了一个数组中,然后通过axis来控制连接的方式/维度