import numpy as np
array = np.array([[1, 2, 3],
[2, 3, 4]])
print (array)
print ('number of dim:', array.ndim) # 求矩阵的维度
print ('shape:', array.shape) # 求矩阵的形状
print ('size:', array.size) # 求矩阵的大小
a = np.zeros((2, 3)) # 生成一个全为零的矩阵
print (a)
b = np.ones((3, 4)) # 生成一个全为一的矩阵
print (b)
c = np.empty((4, 5)) # 生成一个行为4,列为5的空矩阵
print (c)
d = np.arange(10, 20, 2) # 生成一个10到20的步长为2的有序数列
print (d)
e = np.arange(12).reshape((3, 4)) # 生成一个三行四列的0到11的有序数列
print (e)
f = np.linspace(1, 10, 20) # 生成一个20段一到十的有序数组
print (f)
g = np.array([1, 2, 3, 4])
h = np.arange(4)
print(g, h)
print(g - h)
print(g + h)
i = g + h
print (i ** 2) # i的平方表达
print (10 * np.sin(i)) # 对i中的每个值进行sin的求值并且乘以10
print (i < 6) # 判断i中的值是否小于6
print (i == 5) # 判断i是否等于5
x = np.array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5]])
y = np.arange(9).reshape((3, 3))
z = x * y # 两个矩阵中的每个元素对应相乘
z_dot = np.dot(x, y) # 进行线性代数中的矩阵乘法(调用了dot()函数)
print (z)
print (z_dot)
c_dot_2 = x.dot(y) # 跟np.dot(x,y)计算结果相同
print (c_dot_2)
q = np.random.random((2, 4))
print (q)
print (np.sum(q))
print (np.max(q))
print (np.min(q))
print (np.sum(q, axis=1)) # 对矩阵中的每一行进行求和
print (np.max(q, axis=1)) # 对矩阵中的每一行选出最大值
print (np.min(q, axis=0)) # 对矩阵中每一列选出最小值
A =np.arange(14, 2, -1).reshape((3, 4))
print (A)
print (np.argmax(A)) # 对矩阵中最大值进行索引
print (np.argmin(A)) # 对矩阵中的最小值进行索引
print (np.mean(A)) # 对矩阵中的所有元素求平均值
print (np.median(A)) # 对矩阵中的所有元素求中位数
print (np.cumsum(A)) # 依次对矩阵中的每一位元素进行相加代替原来的元素(累加)
print (np.diff(A)) # 依次对矩阵中的每一位元素进行相减代替原来的元素(累减)
print (np.nonzero(A)) # 矩阵中非零元素所在的位置
print (np.sort(A)) # 对矩阵中的每一行进行排序
print (np.transpose(A)) # 对矩阵进行转置
print (A.T) # 结果跟np.transpose(A)一样
print (A.T.dot(A)) # 转置矩阵和矩阵相乘
print (np.clip(A, 5, 9)) # 让矩阵中的所有大于9的元素都等于9,所有小于5的元素都等于5,中间的元素都不变
# 在矩阵运算的过程中如果要指定是对于行还是对于列进行计算可以使用axis=0或者axis=来决定,如果对于行就使axis=1,如果对于列则使axis=0
B = np.arange(3, 15).reshape((3,4))
print (B)
print (B[2]) # 输出第三行的所有元素
print (B[2][2]) # 输出相应的位置的元素
print (B[:, 1]) # 输出第二列的所有元素
print (B[1, 1:3]) # 输出第二行一到三的元素
for column in B.T: # 将矩阵按行输出
print (column)
print(B.flatten()) # 把矩阵B变为一个序列
for item in B.flat:
print(item)
# numpy array合并
C = np.array([1, 1, 1])
D = np.array([2, 2, 2])
E = np.vstack((C, D)) # 将序列上下合并
F = np.hstack((C, D)) # 将序列左右合并
print (E)
print (F)
print (C[:, np.newaxis])
print (C[np.newaxis, :], C.shape)
print (C)