numpy学习——基础篇

numpy学习——基础篇

日期:2021/4/20

作者:就叫易易好了

什么是numpy库?

numpy的全名为Numeric python,是Python语言的一个扩充程序库,支持高级大量的维度数组与矩阵运算,而且还提供了大量的数学函数库。

基本语法

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)  #总共会有多少元素在里面

如何用numpy创建矩阵,数组?

import numpy as np
a=np.array([2,23,4])
print(a)

#输出是[2 23 4]

可以给定义的属性制定type

a=np.array([2,23,4],dtype=np.int)
print(a.dtype)

#输出为:int64  也就是64位的int格式,默认64位的int  如果要设置成32位的int,可以dtype=np.int32
import numpy as np
a=np.zeros((3,4))
print(a)

#运行结果为
[[0.0.0.0.]
 [0.0.0.0.]
 [0.0.0.0.]]
import numpy as np
a=np.ones((3,4),dtype=np.int16)
print(a)

#运行结果为
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
import numpy as np
a=np.arange(10,20,2) #从10开始,到20结束(不包括20),输出数列,公差为2
print(a)

#运行结果为
[10,12,14,16,18]
import numpy as np
a=np.arange(12).reshape((3,4))  #重新定义形状,为3行,4列
print(a)

运行结果为:
[[0 1 2 3]
 [4 5 6 7]
 [8 9 10 11]]
import numpy as np
a=np.linspace(1,10,5)  #1到10这串数字,生成5个数,每个数字之间等距
print(a)

#运行结果为[1  3.25  5.5  7.75  10]

如果要改变上面这个矩阵的形状,可以reshape一下

import numpy as np
a=np.linspace(1,10,6).reshape((2,3))  #1到10这串数字,生成6个数,每个数字之间等距,2行3列
print(a)
#运行结果为
[[1  2.8  4.6]
 [6.4 8.2 10]]
#array的减法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=a-b
print(c)

#运行结果为
[10 20 30 40][0 1 2 3]
[10 19 28 37]
#调用sin函数
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
c=10*np.sin(a)
print(c)
import numpy as np
b=np.arange(4)
print(b)
print(b<3)

#运行结果为
[0 1 2 3]
[True True True False]

矩阵之间的计算

import numpy as np
a=np.array([[1,1],
           [0,1]])
b=np.arange(4).reshape((2,2))

c=a*b  #逐个相乘
c_dot=np.dot(a,b)  #矩阵相乘
print(c)
print(c_dot)

#运行结果
[[1 1]
 [0 1]]
[[0 1]
 [2 3]]

[[0 1]
 [0 3]]
[[2 4]
 [2 3]]
import numpy as np
a=np.random.random((2,4)) #随机生成一个2行4列的矩阵

print(a)
print(np.sum(a)) #求这个矩阵的所有元素和
print(np.min(a)) #求这个矩阵的最小元素
print(np.max(a)) #求这个矩阵的最大元素

#如果只需要求第一行的元素和,可以定义一个维度
print(np.sum(a,axis=1)) #按行求和
#axis=0时是按列数求和

索引

注意索引从0开始!!

import numpy as np
A=np.arange(2,14).reshape((3,4))
print(np.argmin(A))  #求最小值的索引
print(np.argmax(A)) #求最大值的索引
print(np.mean(A)) #求平均值
print(np.median(A)) #求中位数


#运行结果为
[[2 3 4 5]
 [6 7 8 9]
 [10 11 12 13]]
0
11
7.5
7.5
import numpy as np
A=np.arange(3,15)
print(A)
print(A[3]) #输出索引为3的元素

#运行结果为
[3 4 5 6 7 8 9 10 11 12 13 14]
6

#如果该矩阵有维度
import numpy as np
A=np.arange(3,15)。reshape((3,4))
print(A)
print(A[2]) #输出索引为2的行 
print(A[1][1]) #输出索引为第1行第1列的元素
print(A[2,:]) #输出第2行的所有列
print(A[:,1]) #输出第1列的所有行
print(A[1,1:2]) #输出索引为第1列的1到2的元素值

array合并

import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
C=print(np.vstack((A,B))) #向下的合并,vertical stack
#运行结果为
[[1 1 1]
 [2 2 2]]

#如果要看A和C的shape,可以
print(A.shape,C.shape)
结果为
(3,)(2,3)

#还可以向后合并
D=np.hstack((A,B))
print(D)
print(A.shape,D.shape)
#结果为[1 1 1 2 2 2]
(3,)(6,)

C=print(np.vstack((A,B))) #向下的合并,vertical stack
#运行结果为
[[1 1 1]
 [2 2 2]]

#如果要看A和C的shape,可以
print(A.shape,C.shape)
结果为
(3,)(2,3)

#还可以向后合并
D=np.hstack((A,B))
print(D)
print(A.shape,D.shape)
#结果为[1 1 1 2 2 2]
(3,)(6,)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值