numpy的入门使用小节

入门操作

  • 引入包: import numpy as np
  • 创建矩阵: vector= numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
  • 打印矩阵信息:
    1.打印行列:vector.shape
    2.打印类型:type(vector)或者vector.dtype
    3.查看矩阵的维度:vector.ndim
  • 矩阵的bool类型的判断(以==为例其他的类似)
matrix = numpy.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
matrix == 25

结果等于:
array([[False, False, False],
       [False,  True, False],
       [False, False, False]])

生成特殊的矩阵

  • 按顺序生成指定的矩阵
a = np.arange(15)
------------------
结果等于:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14])
  • 变换矩阵为指定的形状reshape(行数,列数)
b = a.reshape(5,3)
print(b)
--------------------------
结果是:
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14]])
  • 零矩阵:np.zeros((行数,列数))
  • 全1矩阵:np.ones((行数,列数))
  • 等差矩阵:np.arange(起始值,终止值,公差).reshape(行数,列数)
  • 对角阵:np.eye(3)三阶单位阵
np.arange( 10, 30, 5 ).reshape(2,2)
---------------------------------
结果是:

array([[10, 15],
       [20, 25]])
  • 随机矩阵:np.random.random((行数,列数))
  • 数字切片组成的矩阵:np.linspace( 0, 2, 100 ),表示从0到5,一个分成100个数。
  • z = np.random.randint(0,3,(2,10)) 只有0,1,2构成的2行10列的矩阵

随机数

  • numpy.random.randint函数
# numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组
# 若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数,且high必须大于low 
# dtype参数:只能是int类型  

print(np.random.randint(2))
# low=2:生成1个[0,2)之间随机整数  

print(np.random.randint(2,size=5))
# low=2,size=5 :生成5个[0,2)之间随机整数

print(np.random.randint(2,6,size=5))
# low=2,high=6,size=5:生成5个[2,6)之间随机整数  

print(np.random.randint(2,size=(2,3)))
# low=2,size=(2,3):生成一个2x3整数数组,取数范围:[0,2)随机整数 

print(np.random.randint(2,6,(2,3)))
# low=2,high=6,size=(2,3):生成一个2*3整数数组,取值范围:[2,6)随机整数  
结果:

0
[0 0 0 0 1]
[3 2 4 4 4]
[[0 1 0]
 [0 0 0]]
[[3 5 2]
 [2 2 5]]
  • 随机种子
  • np.random.RandomState → 随机数种子,对于一个随机数发生器,只要该种子(seed)相同,产生的随机数序列就是相同的
rng = np.random.RandomState(1)#随机数种子 
a=rng.rand(3)#生成三个随机数

numpy的运算

假设有两个矩阵A和B

  • 加法:A+B
  • 减法:A-B
  • 乘法:
  • 1,对应位置相乘:A*B
  • 2.矩阵的乘法:A.dot(B),或者为dot(A,B)
  • 开方:A**2
  • 开根号: np.sqrt(A)
  • 最大值:.max()
  • 最小值:.min()
  • 平均值: mean()
  • 标准差:: std()
  • 方差: var()

numpy的切片

  • 按照列切片:hsplit(矩阵名称,(切片方式))
a = np.floor(10*np.random.random((2,12)))#随机生成一个2x12的矩阵
print(a)
print("----------------------------")
print(np.hsplit(a,3))#一个参数:将矩阵按照列,平均切成3份
print("----------------------------")
print(np.hsplit(a,(3,4)))  # 多个参数:[0-2]切一刀,[3]切一刀,[4-12]切一刀,注意按照下标,在对应位置切刀。
print("----------------------------")
  • 按照行切片:vsplit(矩阵名称,(切片方式))

X:Y选择X到Y-1 ,X:Y:Z 表示从X开始到Y结束,以Z为公差进行切分选择

  • a[0:1,0:2] 数组a中选择第0行,第0、1列
  • a[1::2,::2] = 1 数组a中选择1,3,5…行,选择0,2,4…列

数值的堆叠

  • 方法一:
    numpy.hstack(tup):水平(按列顺序)堆叠数组
    numpy.vstack(tup):垂直(按列顺序)堆叠数组
# 数组堆叠
a = np.arange(5)    # a为一维数组,5个元素
b = np.arange(5,9) # b为一维数组,4个元素
ar1 = np.hstack((a,b))  # 注意:((a,b)),这里形状可以不一样
-------------------------------------------------------
结果:

[0 1 2 3 4] (5,)
[5 6 7 8 9] (5,)
[[0 1 2 3 4]
 [5 6 7 8 9]] (2, 5)

方法二:
numpy.stack(arrays, axis=0):沿着新轴连接数组的序列

a = np.arange(5)    
b = np.arange(5,10)
ar1 = np.stack((a,b))
ar2 = np.stack((a,b),axis = 1)
---------------------------------------------------------------
结果:
[[0 5]
 [1 6]
 [2 7]
 [3 8]
 [4 9]] (5, 2)

排序

np.sort(a,axis=?) 函数的作用是对给定的数组的元素进行排序
a:需要排序的数组
axis:指定按什么排序,默认axis = 1 按行排序, axis = 0 按列排序

a = np.array([[4, 3, 5], [1, 2, 1]])
print(a)
b = np.sort(a, axis=1)
print("------------")
print(b)
----------------------------------------------------------------------------
结果:
[[4 3 5]
 [1 2 1]]
------------
[[3 4 5]
 [1 1 2]]

帮助

help(内容)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值