1.求自然常数的幂次方
自然常数是一个约等于2.71828182845904523536……的无理数。Exp 函数返回 e(自然对数的底,即自然常数)的幂次方。
import numpy as np
a = np.arange(3) # [0,1,2]
print(np.exp(a)) #[1. 2.71828183 7.3890561 ]
2.求平方根
平方根的概念:如果一个数的平方等于a,这个数就叫做a的平方根,也叫做a的二次方根;
import numpy as np
a = np.array([0,1,2,4])
print(np.sqrt(a)) # [0. 1. 1.41421356 2. ]
3. 向下取整
import numpy
a = numpy.array([3.14,3.56]);
print(numpy.floor(a)) #[3. 3.]
4. 矩阵转换为向量
matrix = numpy.arange(4).reshape(2,2) #
vector = numpy.ravel(matrix) #[0, 1, 2, 3]
5. 拼接
# 样本A
A = numpy.array([[1,2],[3,4]])
# 样本B
B = numpy.array([5,6])
# 合并样本。 按照行进行拼接 。按列拼接用hstack
C = numpy.vstack([A,B])
print(C) [[1 2],[3 4],[5 6]]
6. 切割
hsplit可以对矩阵进行切割
首先,有如下的矩阵:
sample = numpy.arange(18).reshape(3,6)
print(sample)
输出如下:
使用hsplit将其按行平均分成三份:
numpy.hsplit(sample,3)
结果:
也可以直接指定分割位置
# 在第三列和第五列后面切割
numpy.hsplit(sample,[3,5])
结果:
7. 浅复制与深复制
浅复制使用view,两个变量指向同一个数据,修改一个变量的值,另一个变量值随之改变。
a = numpy.arange(4).reshape(2,2)
b = a.view() # 等价于 b = a。都是浅复制
print(a) # [0,1,2,3]
print(b) # [0,1,2,3]
b[0,0] = 4
print(a) # [4,1,2,3]
print(b) # [4,1,2,3]
copy实现的是深复制,修改一个变量的值,另一个变量值不变
a = numpy.arange(4).reshape(2,2)
b = a.copy() # 等价于 b = a。都是浅复制
print(a) # [0,1,2,3]
print(b) # [0,1,2,3]
print(id(a))
print(id(b))
b[0,0] = 4
print(a) # [0,1,2,3]
print(b) # [4,1,2,3]
8. 返回每列最大值
data = numpy.arange(12).reshape(4,3)
print(data)
# argmax获取最大值的索引。
m_data = data.argmax(axis=0)
print(data[m_data,range(data.shape[1])]) # [ 9 10 11]
9.排序
data = numpy.array([[3,5,2],[5,2,7]])
# axis=1 按行排序
res = numpy.sort(data,axis=1)
print(res) #[[2 3 5] [2 5 7]]
10. 获取元素排列中的索引
data = numpy.array([3,5,1,4])
# 获取元素的索引。默认从大到小
index = numpy.argsort(data)
print(index) # [2 0 3 1]
# 按照索引值从大到小打印
print(data[index])%%! #[1 3 4 5]
11. 矩阵平铺
a =numpy.array([1,2])
# 把矢量a复制成行2倍列3倍的矩阵
res = numpy.tile(a,[2,3])
print(res) #[[1 2 1 2 1 2] [1 2 1 2 1 2]]
网友评论