Numpy

操作数组和矩阵

import numpy as np
a = np.array([1,2,3])#创建加上np.后面加上其他函数[1 2 3]
a = np.array([1,2,3],dtype=np.int32)
a = np.array([[1,2,3],[2,2,2]])#二维
a = np.zeros((2,3))#全零矩阵
a = np.empty((2,3))#同上
a = np.ones((2,3))#全一矩阵
a = np.arange(1,10,3)#步长输出[1 4 7]不包括10
print(a.ndim)#维数
print(a.shape)#输出(行,列)
print(a.size)#输出总长度
b = np.arange(4)#自然数等价于(0,4,1)

基本操作

c=a-b#[0. 1. 2.]
c=a*b#对应元素相乘  结果还是矩阵
c = a.dot(b)#a矩阵与B矩阵的点乘  结果是常数
c=a**2#对应位置的平方  结果还是矩阵

二维操作

a = np.array([[1,2],[2,3]])
b = np.arange(4).reshape((2,2))#矩阵为[[0 1],[2,3]]
c=a.dot(b)#还是矩阵([4 7]  [8 16])    属于a 的函数

特殊操作 属于np的函数

a= np.random.random((2,4))#随机数组 2*4  np.数值.行列
a_sum=np.sum(a)#矩阵的所有元素的和
print(np.min(a))#[[1 2][3 4]]  为1  结果是一个数字  不是矩阵
print(np.mean(a))#求矩阵元素的平均值 如上:为2.0
print(np.sum(a,axis=0))#按列进行求和  结果为一维矩阵  如上[3 5]
print(np.sum(a,axis=1))#按行进行求和  结果为一维矩阵   如上[3 5]

A=np.arange(2,14).reshape(3,4)
A= np.array([[6,2],[5,3]])
print(np.argmax(A))#最大值元素的索引 元素 是不管几维的单个数字
print(np.argmin(A))#最小值元素的索引

平均值

np.mean(A)#np方法
np.average(A)
A.mean()#矩阵方法
np.median(A)#中位数
np.cumsum(A)#累加运算:结果为矩阵 [[6 2][5 3]]  ----[6 8 13 16]
np.diff(A)  #累减结果为矩阵  有几行,就有几维  [[-4][-2]]
#
np.sort(A)#对每一行进行递增排序  结果 :[[2 6][3 5]]

#矩阵转置
np.transpose(A)
A.T
#特殊
np.clip(A,3,5)#比3小的变成3,比5大的变成5

索引切片

A=np.arange(2,14)
B=A.reshape((3,4))
B[2]#array([10, 11, 12, 13])
B[0][2]# 4
B[1,2]#Out[83]: 8
B[0:2,0:2]#Out[84]:array([[2, 3],[6, 7]])

打印行列

for x in B:
     print(x)
# [2 3 4 5]
# [6 7 8 9]
# [10 11 12 13]
for x in B.T:
    print(x)
    # [2  6 10]
    # [3  7 11]
    # [4  8 12]
    # [5  9 13]
#多维变成一维
B.flatten()

行矩阵

#数组操作:合并拆分
np.vstack((b,c))#上下合并::注意括号(一维不变,接着合并)
# [[ 0  1]
#  [ 2  3]
#  [ 4  7]
#  [ 6 11]]
np.hstack((b,c))#两个数组左右合并(每一个一维数组变,一维数组扩大元素)
# [[ 0  1  4  7]
#  [ 2  3  6 11]]
np.dstack((b,c))#深度合并(每一个元素变成一维矩阵)

多个矩阵合并

#列矩阵
A[:,np.newaxis]#[2 3 4 5 6]====[[2][3]]#A.T
np.concatenate((b,c),axis=0)#纵向合并类似于上面的上下合并
                            #结果是一个列矩阵
np.concatenate((b,c),axis=1)#横向合并,类似于上面的左右合并
                            #结果是一个原矩阵

多个矩阵拆分:

E=np.arange(1,65).reshape(8,8)#8个矩阵
#演横轴拆分
print(np.split(E,1,axis=1))#同样的(一划分,矩阵不变)
print(np.split(E,2,axis=1))#二划分,矩阵变小,且变成两个数组矩阵
#4(最多变成4划分)

你可能感兴趣的:(Numpy)