Python的基础学习1.1:数组操作

上一篇学习了数组的创建以及基本性质(数据类型、形状),今天学习数组的基本操作

1.自动创建数组

1.1特殊数组的自动创建

       特殊数组包括:全零矩阵,全壹矩阵,指定同一值矩阵,以及与指定矩阵相同性质的特殊矩阵

特殊数组的创建
函数含义例子(代码)
zeros(形状,数据类型)全零数组
import numpy as np
np.zeros(4,np.int)  #1*4零向量
np.zeros((3,4),np.int)  #3*4零矩阵

array([0,0,0,0])

ones(形状,np.类型)全一数组
np.ones(4)

array([1,1,1,1])

empty(形状,np.类型)空矩阵(未初始化
np.empty((2,3),np.int)

array([[520,0,520],

           [0,    0,-214]])

full(形状,np.值)初始化为同一值
np.full(4,np.pi) #全π数组
np.full(4,5) #全5数组

array([5,5,5,5])

zeros_like(a)

ones_like(a)

empty_like(a)

full_like(a)

创建与数组a同样形状和数据类型的数组,等价于zeros_like(a.shape,a.dtype)
a=np.ones((2,3),np.int)
np.zeros_like(a)

array([[0,0,0],

           [0,0,0]])

 

1.2 从字节序列或者文件创建

字符串是只读的,不可修改。特别注意数据类型的影响,本文只着重于通过函数创建

从字符串或者函数创建
函数含义
fromstring(s,dtype=np.类型)

从字符串s创建数组

fromfunction(函数名,形状)从指定函数创建数组

在使用fromfunction之前要先定义函数,用def来定义。此处可以创建多维数组,注意形状属性为( ,),且0轴和1轴都是从0开始编号

例如:

一维数组:

import numpy as np

#定义函数 除以4的余数加1
def func(i):
    return i%4+1

np.fromfunction(func,(10,))

输出为:array([1.,2.,3.,4.,1.,2.,3.,4.,1.,2.])

2维数组:

import numpy as np
#9*9乘法表
def func1(i,j):
    return (i+1)*(j+1)

np.fromfunction(func1,(9,9))

输出如下:

图1.1 9*9乘法表

2.对数组中元素进行操作

对元素的操作,主要包括存取、修改。

一维数组:a[始:终:间隔]

二维数组:a[0轴,1轴],a[:,2] 所有行第三列

2.1 使用切片存取修改

使用切片存取或者修改时,与原数组共用内存,因此修改一个则原数组也修改

import numpy as np
a=np.arange(10)
a       #从0开始                   array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])                 
a[5]    #第6个元素                  5        
a[3:5]  #第4个和第5个,含头不含尾   array([3, 4])
a[:5]   #从0开始到底5个            array([0, 1, 2, 3, 4])
a[3:]   #从第4个开始               array([3, 4, 5, 6, 7, 8, 9])

a[1::2] #[始:终:间隔]            array([1, 3, 5, 7, 9])
a[::-1] #负间隔表示反序            array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

a[2:4]=100,101 
a       #修改元素                  array([  0,   1, 100, 101,   4,   5,   6,   7,   8,   9])

#赋值之后数组与原数组共享内存,同时更新
b=a[1:4]
b[0]=-10
a                                 #array([  0, -10, 100, 101,   4,   5,   6,   7,   8,   9])

2.2 使用整数列表、整数数组等存取

得到的数组与原数组不共享数据

a[[2,3]]   #整数列表(起始为0)    array([100, 101])
b=a[[2,3]]
b[0]=2
a          #a的第1个元素并不改变   array([  0, -10, 100, 101,   4,   5,   6,   7,   8,   9])

a[np.array([2,3])]  #整数数组      array([100, 101])

 

结构数组和内存结构等就暂时不学习,需要用到再补充。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值