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 做img//做对数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来控制连接的方式/维度

Posted on Jan 28, 2020