numpy的基础操作(定义、最大最小平均值、转置、排序、索引、合并、分割等)

numpy的简单操作

定义一个多维矩阵

import numpy as np
a = np.array([2,23,4],
             [3,54,5],
             [4,24,1])

定义array的type

import numpy as np
a =np.array([2,34,5],dtype=np.int)
#a =np.array([2,34,5],dtype=np.float)

输出数字为0或者1的矩阵

import numpy as np
#输出一个三行、四列的矩阵,其中数字全为0:
a = np.zeros((3,4))
#输出一个三行、四列的矩阵,其中数字全为1:
b = np.ones((3,4),dtype=np.int16)

两个矩阵对应的相乘

import numpy as np
a = np.array([[1,1],[0,1]])
b = np.arrange(4).reshape((2,2))
c = a*b
#c :[0 1]
#   [0 3]

两个矩阵相乘

import numpy as np
a = np.array([[1,1],[0,1]])
b = np.arrange(4).reshape((2,2))
c_dot = np.dot(a,b)
#c :[2 4]
#   [2 3]

最大/最小值/求和(返回行/列的数字)

import numpy as np
a = np.random.random((2,4))
print(a)
print(np.sum(a,axis=1))#在每一行当中的求和,会返回两个数,分别代表第一/第二行的求和
print(np.min(a,axis=0))#每一列的最小值
print(np.max(a,axis=1))#每一行的最大值

最大/最小值(返回是第几个数)/平均值/中位数

 import numpy as np
 A = np.arrange(2,14).reshape((3,4))
 print(np.argmin(A))# 打印:比如第一个数最大,则打印0
 print(np.argmax(A))# 打印:比如第十个数最大,则打印9
 print(np.mean(A)# 7.5 求平均值 或print(A.mean())或 print(np.average(A))是一样的
 print(np.mean(A,axis=0))# 计算每一列的平均值
 print(np.mean(A,axis=1))# 计算每一行的平均值
 print(np.median(A)) # 7.5 中位数

累差/累加

import numpy as np
 A = np.arrange(2,14).reshape((3,4))
 print(np.cusum(A)) #累加
 print(np.diff(A)) #累差

逐行排序

import numpy as np
 A = np.arrange(2,14-1).reshape((3,4))
 print(np.sort(A))#按照从小到大 逐行排序

矩阵的转置

import numpy as np
 A = np.arrange(2,14-1).reshape((3,4))
 print(np.transpose(A))
 print(A.T) #这两个表达方式都可以

clip功能

import numpy as np
 A = np.arrange(2,14-1).reshape((3,4))
 print(np.clip(A,5,9)) # 让所有小于5的数字等于5,大于9的数字等于9,5和9之间的数字不变

索引

import numpy as np
 A = np.arrange(315).reshape((34))
 print(A[2,1]) #打印出第3行第2列的数字12
 print(A[2,:]) #打印出第3行的所有数
 print(A[:,1]) #打印出第2列的所有数
 print(A[1,1:2])#打印出第2行的第2列到第3列的所有数
 for row in A:
 	print(row) #打印出每一行的数
 for column in A.T :
 	print(column) #因为for column in A 这样打出的是每一行,所以用A.T就相当于打出了每一列

把多行多列的矩阵一个一个数字打出来

import numpy as np
 A = np.arrange(315).reshape((34))
 for item in A.flat:
 	print(item)

如何合并array

import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
print(np.vstack((A,B))) # 上下的合并(Vertical stack) 
# 打印: [[111]
#		 [222]]
 print(np.hstack((A,B)))# 左右合并(horizontal stack)
 #打印: [1 1 1 2 2 2] 

把只有一行的横向的序列变成竖向的矩阵

import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
print(A[:,np.newaxis].shape) #在后面加了一个维度 打印:(3,1)
print(A:np.newaxis,:].shape) #在前面加了一个维度 打印:(1,3)
print(A[:,np.newaxis]) #打印出纵向的111

多个array纵向或者横向的合并

import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.concatenate((A,B,B,A),axis=0)#上下维度合并

分割array(对等的分割)

import numpy as np
 A = np.arrange(12).reshape((34))
 print(np.split(A,2,axis=1)) #分成两块,对 列 分割
 print(np.split(A,3,axis=1)) #会报错,因为4列分成3块,不对等
 print(np.split(A,3,axis=0))#分成三块,横向分割

分割array(不对等的分割)

import numpy as np
 A = np.arrange(12).reshape((34))
 print(np.array_split(A,3,axis=1))
 print(np.vsplit(A,3)) #纵向分
 print(np.hsplit(A,3)) #横向分

赋值

import numpy as np
a = np.arange(4)
b = a
c = a
d = b
#则 a,b,c,d完全等价,改变a里的一个元素,b,c,d中全都会变

#如果不想这样
b = a.copy()# deep copy
#这样只是把值赋给了b, b 不会指向 a,修改a ,b的值并不会变化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值