numpy中的基本操作

numpy基本操作

导入numpy

#as 取别名 这里约定俗称为 np
import numpy as np

创建数组

1.1 使用np.array()

# 生成一维数组
a= np.array([1,2,3,4])
a
array([1, 2, 3, 4])
# 生成二维数组
a = np.array(
[
    [1,2,3,4],
    [5,6,7,8]
])
a
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

1.1.1ndarray属性

a
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])
# ndim 返回一个数字 他表示array的维度的个数
a.ndim
2
#shape 返回元组 元组的长度等于ndim
# 表示array的维度
a.shape
(2, 4)
# dtype array中元素的数据类型
a.dtype
dtype('int32')
#Size 返回一个数字 表示式array中的所有元素的总数
a.size
8
# itemsize 表示数组中每个元素字节的大小
a.itemsize 
4

1.1.2使用np.arange(start,stop,step,dtype)

  • start 表示开始的数(包含)默认从0就开始
  • stop表示结束的数(不包含)
  • step 指定步长 默认为1
  • dtype 指定的数据类型
#创建一个从0到9的数组 不包含10
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#创建从1 开始截至到10(不包含10)指定步长为2
np.arange(1,10,2)
array([1, 3, 5, 7, 9])
#reshape 可改变数组的形状
# 将0-9的一维数组 变成2行5列的二位数组
np.arange(10).reshape(2,5)
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

1.3使用nplinspace(stare,stop,num,endpoint)创建等差数组-指定数量

  • start起始值
  • stop结束值
  • num要生成的等间隔样例数量,默认为50
  • endpoint序列中是否包含stop值,默认true
#创建从0 到10包含5个数的等差数组
np.linspace(0,10,5)
array([ 0. ,  2.5,  5. ,  7.5, 10. ])

1.4 创建特定数组

1.4.1np.ones()创建全是1 的数组

np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((2,5))
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])

ones_like创建形状相同的数组

#最开始上面创建数组a
# shape(2,4)2行4列
a
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])
#创建和a形状相同的数组 里面的数据全为1
np.ones_like(a)
array([[1, 1, 1, 1],
       [1, 1, 1, 1]])

1.4.2np.zeros()创建全是0 的数组

np.zeros(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3,4))
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

同理zeros_like创建形状相同的数组

#创建和a形状相同的数组 里面全为0 
np.zeros_like(a)
array([[0, 0, 0, 0],
       [0, 0, 0, 0]])

1.4.3 np.empty()创建值未初始化的数组

#注意:empty创建的数组 里面的数据未初始化是随机的 不要使用
np.empty((3,4))
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

同理empty_like 创建形状相同的数组

#创建和a形状相同的数组
np.empty_like(a)
array([[         0,          1,          0, 1645630477],
       [       840,          0,        768,      32766]])

1.4.4 np.full()创建指定值得数组

#创建一个3行4列 指定数据为666得数组
np.full((3,4),666)
array([[666, 666, 666, 666],
       [666, 666, 666, 666],
       [666, 666, 666, 666]])

同理full_like 创建形状相同得数组

#创建和a形状相同得数组 里面得数组指定全为666
np.full_like(a,666)
array([[666, 666, 666, 666],
       [666, 666, 666, 666]])

1.4.5random随机函数创建数组

#返回5个范围在[0,1)之间得数据
#注意:区分区间是左闭右开
np.random.rand(5)
array([0.03112879, 0.26770155, 0.98480958, 0.00530826, 0.28476774])
#指定shape
np.random.rand(3,4)
array([[0.18432096, 0.52445481, 0.09512187, 0.93167262],
       [0.77688215, 0.16532922, 0.89006584, 0.62046674],
       [0.96771746, 0.93658368, 0.95323453, 0.91017062]])
#randint(low,high)生成随机整数 区间范围[low,high)
np.random.randint(1,10)
6
#randint(low)不指定high则区间范围从[0,low)
np.random.randint(10)
4
#指定shape
np.random.randint(10,20,(3,4))
array([[12, 14, 19, 13],
       [12, 14, 18, 10],
       [14, 10, 19, 12]])
#uniform()在[low,high)之间生成均匀分布的数字
np.random.uniform(1,10,(3,4))
array([[7.85035543, 2.56824208, 1.54116886, 8.130379  ],
       [5.82342915, 5.16201341, 2.79545147, 2.59016203],
       [2.70404236, 3.1324535 , 1.21330761, 8.57541955]])
#normal()可以指定均值和标准差
np.random.normal(5,10,(3,4))
array([[ 3.944669  , -0.39016264, -5.21369742, -0.08211208],
       [ 7.49338125, 18.05193217,  2.56987941, -6.26421486],
       [16.15043407,  5.58681344,  2.48381599, 17.91341218]])
#randn()生成数据具有标准正态分布(即:均值为0,方差为1)
np.random.randn(3,4)
array([[-1.58031732,  1.35789356,  0.39913022, -0.96590225],
       [ 0.49926635,  0.10392622,  0.03091543,  0.13137241],
       [ 0.37363276, -0.65788659,  0.12043172, -1.44992521]])

2.数组的索引

#创建0-9的以为数组
x = np.arange(10)
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#取x中第一个元素的值
#注意:索引是从0 开始的 所以第一个元素的索引值是0
x[0]
0
#取值2-8
#数组中2 的索引是2 8的索引值是8
#-1 表示倒数第一个数的位置
#注意:索引这里区间范围是:左闭右开(即:包含左边,不包含右边)
x[2:-1]
array([2, 3, 4, 5, 6, 7, 8])
#创建2维数组4行5列
Y = np.arange(20).reshape(4,5)
Y
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
#取第一行第一列的数据
#行与列的索引值 都是从0开始的
Y[0,0]
0
#取第二行的数据(第二行的索引为1)
Y[1]
array([5, 6, 7, 8, 9])
#取第二列的索引(第二列的索引值为1)
Y[:,1]
array([ 1,  6, 11, 16])

数组的运算

#创建一个2行5列的数组
A = np.arange(10).reshape(2,5)
A
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
#数组A+1
#数组中多有的数加1
A+1
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10]])
#数组A*3
#数组中所有的数都与3相乘
A*3
array([[ 0,  3,  6,  9, 12],
       [15, 18, 21, 24, 27]])
#对数字组进行sin()
#对数组中所有的函数都进行sin()
np.sin(A)
array([[ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ],
       [-0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849]])
#创建数组B
B = np.arange(10,20).reshape(2,5)
B
array([[10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
#数组的加法
#数组A与数组B对应位置的数相加   相乘是一样的
A+B
array([[10, 12, 14, 16, 18],
       [20, 22, 24, 26, 28]])

numpy常用的一些数学统计函数

A
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
#对数组求和
np.sum(A)
45
#对数组中所有元素的乘积
np.prod(A)
0
#最小值
np.min(A)
0
#最大值
np.max(A)
9
#中位数
np.median(A)
4.5
#平均值
np.mean(A)
4.5
#标准差
np.std(A)
2.8722813232690143
#方差
np.var(A)
8.25
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值