数组的创建、索引、切片

1.手动创建数组

准备工作:
查看np.array的帮助文档

import numpy as np
np.array?

手动创建1维数组

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

手动创建2维数组

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

常用属性说明

属性说明
dtype返回数组中元素的类型
shape返回由整数组成的元组,元组中的每个整数依次对应数组的每个轴的元素个数
size返回一个整数,代表数组中元素的个数
ndim返回一个整数,代表数组的轴的个数,即维度
nbytes返回一个整数,代表用于保存数据的字节数
#一维数据
a=np.array([1,2,3,4,5])
print(a.dtype) #int32
print(a.shape)#(5,)
print(a.size)#5
print(a.ndim)#1
#二维数据
b=np.array([[1,2],[3,4]])
print(b.dtype) #int32
print(b.shape)#(2,2,)
print(b.size)#4
print(b.ndim)#2

c=np.array([1,2,3,4],ndmin=2)
print(c.dtype) #int32
print(c.shape)#(1,4)
print(c.size)#4
print(c.ndim)#2

2.函数创建数组

函数说明
arange根据开始值、结束值和步长,创建一个数组
onesones根据指定的形状(以元组方式指定)和元素类型,创建元素值为1的数组
zeros元素值都是0
empty没有填充任何元素数据,但分配了内存空间
eye、identity创建对角线元素是1、其余为0的二维数组
diag创建对角线元素是指定数值、其余是0的二维数组
linspace根据开始值、结束值和元素数量创建元素是等差数列的数组
logspace根据开始值、结束值、元素数量和对数底创建元素是等比数列的数组
np.arange(1,30,3)
np.ones((1,5))
np.eye(4)
np.identity(4)
np.diag([1,2,3,4])
np.diag([1,2,3,4],k=1)
np.linspace(1,10,3)
np.logspace(2,3,4)

在这里插入图片描述

3.数组的索引

根据索引(下标)获取数组元素

3.1下标是整数
#一维数据
b = np.linspace(0, 100, 5)#array([  0.,  25.,  50.,  75., 100.])
print(b[3])#75
print(b[-3])#50

#二维数据
c = np.logspace(1, 3, 12).reshape(3, 4)
#array([[  10.        ,   15.19911083,   23.101297  ,   35.11191734],
#       [  53.36699231,   81.11308308,  123.28467394,  187.38174229],
#       [ 284.80358684,  432.87612811,  657.93322466, 1000.        ]])
c[1]#array([ 53.36699231,  81.11308308, 123.28467394, 187.38174229])
c[1][2]#123.28467394420659
c[1,2]#123.28467394420659
c[(1,2)]#123.28467394420659
3.2下标是列表
b = np.linspace(0, 100, 5)#array([  0.,  25.,  50.,  75., 100.])
b[[1,3]]#array([25., 75.])
b[1]#25.0
b[(1)]#25.0
b[[1]]#array([25.])

c = np.logspace(1, 3, 12).reshape(3, 4)
#array([[  10.        ,   15.19911083,   23.101297  ,   35.11191734],
#       [  53.36699231,   81.11308308,  123.28467394,  187.38174229],
#       [ 284.80358684,  432.87612811,  657.93322466, 1000.        ]])
c[1]#array([ 53.36699231,  81.11308308, 123.28467394, 187.38174229])
c[[0,2]]#第0轴的0、2行
#array([[  10.        ,   15.19911083,   23.101297  ,   35.11191734],
       #[ 284.80358684,  432.87612811,  657.93322466, 1000.        ]])
c[[0,2],[1,2]]#第0轴的0行,2行,第1轴的1列,2列
#array([ 15.19911083, 657.93322466])
3.3下标是数组

c = np.logspace(1, 3, 12).reshape(3, 4)
c[np.array([1,2])]
#array([[  53.36699231,   81.11308308,  999.        ,  187.38174229],
#       [ 284.80358684,  432.87612811,  657.93322466, 1000.        ]])
c[np.array([1, 2]), np.array([0, 1])]
#array([ 53.36699231, 432.87612811])

4.数组的切片

#一维数组
a = np.arange(10, 20)#array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
a[2:8]#前包含后不包含
#array([12, 13, 14, 15, 16, 17])

#二维数组
b = np.arange(0, 60, 10).reshape(-1, 1) + np.arange(0, 6)
#array([[ 0,  1,  2,  3,  4,  5],
#       [10, 11, 12, 13, 14, 15],
#       [20, 21, 22, 23, 24, 25],
#       [30, 31, 32, 33, 34, 35],
#       [40, 41, 42, 43, 44, 45],
#       [50, 51, 52, 53, 54, 55]])
b[1:4]
#array([[10, 11, 12, 13, 14, 15],
#       [20, 21, 22, 23, 24, 25],
#       [30, 31, 32, 33, 34, 35]])
b[1:4,2:5]
#array([[12, 13, 14],
#       [22, 23, 24],
#       [32, 33, 34]])
b[1:]
#array([10, 11, 12, 13, 14, 15])
b[1]
#array([10, 11, 12, 13, 14, 15])
b[::2,::2]
#array([[ 0,  2,  4],
#       [20, 22, 24],
#       [40, 42, 44]])
b[:3,[0,3]]
#array([[ 0,  3],
#       [10, 13],
#       [20, 23]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值