python 数组操作中的 “:” “:: ” “, ” python 中的 [:-1] 和 [::-1] [-1:-2:-1] [

使用python版本3.7
首先先了解下python3.7中的下标,python下标有两套,一套是正的,一套是负的
a='python'中的python 的下标可以如下
组     p   y   t   h   o   n
正下标 0   1   2   3   4   5
负下标 -6 -5   -4  -3  -2  -1
对应位置的 正下标 - 负下标=len(a)
使用正下标时,下标i取值范围为0 <= i < len(a)     超出范围为越界
使用负下标时,下标i取值范围为-1>= i >-len(a)-1   超出范围为越界

数组操作中一般通过 “:” 和数字或变量的组合来灵活使用里面的元素
“:” 一般表示循环

a='python'
i=1
j=4
k=1
b=a[i:j:k]  #结果为yth  。意思为从下标i个开始到下标j-1结束,步长为k,(k为整数且不能等于0),第一个冒号满足左闭右开原则 。
            #当i,j出现异号时,可以全转换成正数去理解,负数中的出现-len(a)-1时,就不能转正数看待了,可以转换成负数去理解
            #k>0时,i默认为0,j默认为len(a) ; k<0时,i默认为-1,j默认为-len(a)-1,-len(a)-1只作为无法取到的边界,不可转正
b=a[i]      #结果为y ,普通的数组访问,根据下标获取值
b=a[i:j:-1] #结果为空
b=a[4:0:-1] #结果为ohty
b=a[4:-1:-1]#结果为空,可以理解为a[4:len(a)-1:-1]=a[4:5:-1]
b=a[-1:0:-1]#结果为nohty,可以理解为a[5:0:-1]
b=a[0:-1:1] #结果为pytho,可以理解为a[0:5:1]
b=a[0:-1:-1]#结果为空 可以理解为a[0:5:-1]
b=a[0:-2:-1]#结果为空  可以理解为a[0:4:-1]
b=a[-2:0:-1]#结果为ohty,可以理解为a[4:0:-1]
b=a[i:j]  #表示步长为1
b=a[:j]   #结果为py 。i不写默认为0,j不写默认为len(a)
b=a[i:]   #结果为ython,表示从下标i开始到最后一个(下标为len(a)-1)
b=a[:]    #结果为python,表示从下标0开始到最后一个结束
b=a[:-1]  #结果为pytho ,等价于a[0:5]
b=a[::-1] #结果为nohtyp,等价于a[-1:-len(a)-1:-1]

插入
python中的list,tuple,dictionary 与numpy中的array mat是有区别的。
 

String(字符串)

t = string
string可以用‘’或“”圈起来

>>> t='Hello World!'
>>> t=Hello World!

>>> t[0]
'H' 
>>> t
'Hello World!'

List(链表)

t = [value,value...]
value类型可以各异

>>> t={'abac', ggg, 2,[1,2,3],(1,22,3)}

>>> t[0]
'abac' 

Tuple(元组)

t = (value,value...)
value类型可以各异,但是Tuple元素数量不能减少,且不能直接给元素赋值,具体看连接

>>> t=('abac', ggg, 2,[1,2,3],(1,22,3))

>>> t[0]
'abac' 

Dictionary(字典)

t = {key1 : value1, key2 : value2}

>>> t = {'a': 1, 'b': 2, 'b': '3'}

>>> t['b'] 
'3' 
>>> t
{'a': 1, 'b': '3'}

Set(集合)

t={value1,value2}或者
t=set(value)

>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}

>>> print(basket) # 这里演示的是去重功能 

{'orange', 'banana', 'pear', 'apple'}

>>> 'orange' in basket # 快速判断元素是否在集合内 

True 

>>> 'crabgrass' in basket 

False

Numpy.array(数组)

t = [value,value...]

value类型必须一致,要么都是数字,要么都是链表,要么都是字符串


初始化连接1
连接2

>>> t = np.random.rand(3,4)

>>> t
array([[0.17359552, 0.61668592, 0.97915523, 0.99638115],

       [0.98119493, 0.36911137, 0.45306895, 0.09396056],

       [0.11345902, 0.17136475, 0.85474534, 0.56421904]])

Numpy.mat(矩阵)

t = [value,value...]

value类型必须一致,要么都是数字,要么都是链表,要么都是字符串。与array的区别在初始化与操作上的区别,需要可以去做相关搜索 或看

 

链接

>>> t = np.random.rand(3,4)
>>> t=np.(t)

>>> t
array([[0.17359552, 0.61668592, 0.97915523, 0.99638115],

       [0.98119493, 0.36911137, 0.45306895, 0.09396056],

       [0.11345902, 0.17136475, 0.85474534, 0.56421904]])

上面的各种类型中Dictionary 与Set 是不能通过数字下标访问的,Dictionary需要通过key来访问。
python3.7中只有numpy的array与numpy的mat才可以有多维数据的访问。

numpy中为方便矩阵操作更进一步使用了 “,” 符号(数组操作中 逗号 在原生的python中没有定义)
在numpy 中上面操作的只是一个维度的操作描述,通过逗号来间隔不同维度的操作,如下

import numpy as np
a=[['1','2','3','4','5','6'],['a','b','c','d','e','f']]
print(a)
print(type(a))
#print(a[:,:3]) #TypeError: list indices must be integers or slices, not tuple #对python的list,tuple,array 操作时逗号被单纯的当做一个tuple,操作中没有意义
a = np.mat(a) #对python中的numpy中的mat或者array操作时,逗号用于作为不同维度的操作描述的间隔符。
print(a)
print(type(a))
print(a[:,:3]) #获取所有行的前3列

python 数组操作中的 “:” “:: ” “, ” python 中的 [:-1] 和 [::-1] [-1:-2:-1] [_第1张图片

a=[['1','2','3','4','5','6'],['a','b','c','d','e','f']]
a=np.array(a)  #只有numpy中的array或者mat才对操作中的 “,” 起效用!!!!!!!!!!
b=a[:,0]           #结果为['1' 'a']。操作中的 “,” 前面的 “:” ,表示对第一维数据进行遍历,“,” 后面的表示对第二维数据去第一个。
b=a[::-1,:3]     #结果为 下面的矩阵。对第一维倒序,对第二位取前三个。

b=a[::-1,::-1]  #对两维的数据都取倒序。结果如下

你可能感兴趣的:(python,numpy)