numpy

numpy

1.导包

import numpy as np

2.将列表转化为数组

array = np.array([[1,2,3],
                 [2,3,4]])

3.创建矩阵

1 直接利用array()

(1)创建一维矩阵
a = np.array([22,23,4],dtype=np.int64) # dype=np.int64 可选择不写
(2)创建二维矩阵
a = np.array([[1,2,3],
                 [2,3,4]])

2 创建空矩阵zeros((a,b))

c = np.zeros((3,4))

3 创建全1矩阵ones((a,b))

d = np.ones((3,4))

4 利用arange(),还可以对其进行规定形状利用reshape(a,b)

arrange(a,b,c)——————>[a,b),其中c为步长
e = np.arange(10,20,2)
arrange(a,b,c).reshape(d,e)——>d为矩阵的行数,e为矩阵的列数
f = np.arange(12).reshape(3,4)

5 linspace (a,b,c).reshape(d,e)——>[a,b],c为在[a,b]中产生20个数,等差数列

g = np.linspace(1,10,20).reshape(4,5)

6 random.random((a,b))

a = np.random.random((2,4))
print(a)

4.矩阵的一些附加函数

ndim 、shape、size
# 数组为几维
print('number of dim',array.ndim)
# 数组为几行几列
print('shape',array.shape)
# 数组的大小
print('size',array.size)

5.numpy的基础运算

1 + 、-、*、/

a= np.array([10,20,30,40])
b = np.array(4)
print(a)
print(b)
c = a-b	# -
print(c)
d = 10*np.sin(a) # *
print(d<3)
print(d)

2 矩阵的运算

(1) ‘*’ 矩阵中所对应的数字相乘
a = np.array([[1,2],
              [4,5]])
b = np.arange(4).reshape(2,2)
print('矩阵a',a)
print('矩阵b',b)
# a和b逐个相乘
c = a*b
print('a,b对应的数字相乘',c)
(2) 'dot()'正常的矩阵相乘
d_dot=np.dot(a,b)

3 矩阵的一些基本函数

(1)sum、max、min
a = np.random.random((2,4))
print(a)
# sum、max、min max(a,axis=1) 当axis=1时,就是每行最大值。axis=0时,就是每列最大值
print(np.sum(a),np.max(a,axis=0),np.min(a))
(2)argmin(a) 数组中最小值的一个索引
A = np.arange(2,14).reshape((3,4))
print('打印出A',A)
# 数组中最小值的一个索引
print(np.argmin(A))
(3)argmax(a) 数组中最大值的一个索引
# 数组中最大值的一个索引
print(np.argmax(A))
(4)argmean(a) 整个数组中的一个平均值
# 整个数组中的一个平均值
print(np.mean(A))
(5)cumsum(a) 逐步累加
# 逐步累加
print(np.cumsum(A))
(6) diff(a) 逐步累差
print('逐步累差',np.diff(A))
(7)nonzero(a) 找出非零的数
print(np.nonzero(A))
(8)transpose()为求其转置矩阵、A.T也是转置矩阵
A = np.arange(14,2,-1).reshape((3,4))
print('A',A)
# transpose()为求其转置矩阵、其(x.T)也是转置矩阵
print('A.T',np.transpose(A))
print(A.T.dot(A))
(9)截取clip(x,a,b) scope(5,9)保留,>b变成b,小于a变成a
print(A)
print(np.clip(A,5,9))
拓展axis=0/1
# 求平均值mean(a,aixs=0/1) when aixs=0,就是对列进行操作 when axis=1,就是对行操作
print(np.mean(A,axis=0))
print(np.mean(A,axis=1))

6.numpy索引操作

# numpy 索引
A = np.arange(3,15).reshape((3,4))
print(A)
print(A[2]) # 输出一行的东西
print(A[2][0]) # 根据索引进行查找

7.遍历操作

1 对矩阵进行行列遍历

for row in A:
    print(row)
print("对行进行遍历\n")
for column in A.T:
    print(column)
print("对列进行遍历\n")
2 将矩阵变换成一行 flatten()
print(A.flatten())
for item in A.flat:
    print(item)

8.numpy的array合并

vstack((a,b))上下合并、hstack((a,b))水平合并

# numpy的array合并
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B)) # vertical stack
D = np.hstack((A,B)) # horizontal
print('c',C) # vertical stack上下合并
print('D',D) # horizontal 水平合并
print(A[:,np.newaxis])
'''
A[:,np.newaxis]输出为:
[[1]
 [1]
 [1]]
'''

9. numpy的array()的分割

1 均分操作split(A,a,axis=0/1)

# numpy的array分割
A = np.arange(12).reshape((3,4))
print("输出A")
print(A)
print(np.split(A,2,axis=1)) # 将其分成2部分,axis=1将其进行对其列向分割
print ("横向分割")
print(np.split(A,3,axis=0)) # 将其进行分成3部分,axis=0将其进行横向分割
 # print(np.split(A,3,axis=1)) # array split does not result in an equal division ,无法对其进行平均分割,会报错

2 不均分操作 array_split(A,a,axis=0/1)、vsplit(A,a)、hsplit(A,a)

print("不均等分割")
print(np.array_split(A,3,axis=1))
print("jajjaaj\n")
print(np.vsplit(A,3)) # 横向分割
print("xixixii\n")
print(np.hsplit(A,2)) # 纵向分割

print("-------------------------------------------------------------------------------------------------------------")
# numpy的copy & deep copy
a = np.arange(4)
print(a)

numpy的copy & deep copy

深拷贝与浅拷贝的区别——底层讲的贼清楚
https://www.bilibili.com/video/BV1RY411p7Cz?spm_id_from=333.337.search-card.all.click

思维导入笔记
https://blog.csdn.net/weixin_43959833/category_10962459.html?spm=1001.2014.3001.5482

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值