numpy学习笔记

numpy学习笔记

一、安装环境:

​ pip3 install numpy

​ pip install pandas

numpy主要处理矩阵和数组

二、Numpy创建array基本操作

简单示例:

import numpy as np

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

a0 = np.zeros((3, 4), dtype=np.int64)		生成全为0的数组
a1 = np.ones((3, 4), dtype=np.int64)		生成全为1的数组
aSort = np.arange(0, 12).reshape((3, 4))	生成内容为0~1223列的矩阵
aLine = np.linspace(1, 10, 6).reshape(2, 3)	生成1~10之间6段线段,并转化成23列的矩阵

print(a0)
print(a1)
print(aSort)
print(aLine)
print(array)
print('number of dim:', array.ndim) 矩阵维度
print('shape of dim:', array.shape)	矩阵形状
print('size of dim:', array.size)	矩阵大小
print('type:', array.dtype)			矩阵元素类型

输出结果:

[[0 0 0 0]
 [0 0 0 0]
[0 0 0 0]]

[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]

[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

[[ 1.   2.8  4.6]
[ 6.4  8.2 10. ]]

[[1 2 3]
[4 5 6]]

number of dim: 2
shape of dim: (2, 3)
size of dim: 6
type: int64

三、基本运算操作:

1、数组减法

每个元素相减

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]
2、数组加法

每个元素相加

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 21 32 43]
3、数组乘法

每个元素相乘

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]
[  0  20  60 120]
4、数组乘方

每个元素乘方

import numpy as np

a = np.array([10, 20, 30, 40])
b = np.arange(4)

print(a, b)
c = b ** 2
print(c)

输出结果:

[10 20 30 40] [0 1 2 3]
[0 1 4 9]
5、三角函数运算
import numpy as np

a = np.array([10, 20, 30, 40])
b = np.arange(4)

print(a, b)

c = 10 * np.sin(a)	正弦运算(余弦运算,正切运算同理可得)
print(c)

输出结果:

[10 20 30 40] [0 1 2 3]
[-5.44021111  9.12945251 -9.88031624  7.4511316 ]
6、矩阵点积运算
a = np.array([[1, 1],
             [0, 1]])
b = np.arange(4).reshape(2, 2)

print(a)
print(b)

c_dot = np.dot(a, b)
print(c_dot)

输出结果:

[[1 1]
 [0 1]]
 
[[0 1]
 [2 3]]
 
[[2 4]
 [2 3]]
7、求和,求最值运算
import numpy as np

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

print(np.sum(a, axis=1))	#axis=1在每一行进行求和运算
print(np.max(a, axis=0))  	#axis=0在每一列中求最大值
print(np.min(a))

输出结果:

[[0.01178302 0.74228551 0.95279139 0.33176999]
 [0.03857885 0.02307555 0.509306   0.45963771]]
 
[2.03862991 1.03059811]

[0.03857885 0.74228551 0.95279139 0.45963771]

0.011783015115755968
8、常见的矩阵计算操作
import numpy as np

a = np.arange(14, 2, -1).reshape((3, 4))

print(a)
print(np.argmin(a))         #最小值的索引
print(np.argmax(a))         #最大值的索引
print(np.mean(a))           #求矩阵元素的平均值mean和average均可实现
print(np.median(a))         #求中位数
print(np.cumsum(a))         #逐步累加形成数组
print(np.diff(a))           #逐步累减形成数组
print(np.nonzero(a))        #输出非0值的行数和列数,分为两个数组输出
print(np.sort(a))           #排序
print(np.transpose(a))      #矩阵的反向
print(np.clip(a, 5, 9))     #截取矩阵中小于5的数则设置成为5,大于9的数则设置成9

输出结果:

[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
 
11
0
8.5
8.5

[ 14  27  39  50  60  69  77  84  90  95  99 102]

[[-1 -1 -1]
 [-1 -1 -1]
 [-1 -1 -1]]
 
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
 
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
 
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
9、根据索引求值
import numpy as np

a = np.arange(3, 15)
print(a)
print(a[3])       #根据索引查找值

b = np.arange(3, 15).reshape(3, 4)
print(b)
print(b[2][1])      #根据索引查找值
print(b[:, 1])      #根据索引查找值,:表示所有的值,所有行或者所有列

for row in b:
    print(row)      #迭代行

for col in b.T:
    print(col)      #迭代列

for item in b.flatten():
    print(item)     #迭代矩阵的项

输出结果:

[ 3  4  5  6  7  8  9 10 11 12 13 14]

6

[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
 
12

[ 4  8 12]

[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]

[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]

3
4
5
6
7
8
9
10
11
12
13
14
10、矩阵合并
import numpy as np

a = np.array([1, 1, 1])
b = np.array([2, 2, 2])

c0 = np.vstack((a, b))      #上下合并矩阵
c1 = np.hstack((a, b))      #左右合并矩阵

print(c0)
print(c1)
print(a[np.newaxis, :])     #在行上加一个维度

输出结果:

[[1 1 1]
 [2 2 2]]
 
[1 1 1 2 2 2]

[[1 1 1]]
11、矩阵分割
import numpy as np

a = np.arange(12).reshape((3, 4))
print(a)
print(np.split(a, 2, axis=1))   #按列分割成两块
print(np.split(a, 3, axis=0))   #按行分割成三块

print(np.array_split(a, 3, axis=1))  #不等项分割

print(np.vsplit(a, 3))      #纵向分割
print(np.hsplit(a, 2))      #横向分割

输出结果:

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

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

以上均为自己初学的学习笔记,主要是numpy操作数组矩阵的一些基本的操作,包括一些自带函数的实现以及实现的输出结果。大家如果觉得对自己有帮助的话,可以点赞关注,收藏文章噢!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ttbigcute

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值