python中列表(list)与numpy(array)的区别,行与列与维度的选择

python 中列表常用的都是二维或者三位的列表,格式如下:a=[[1 ,2,3],[4,5,6],[7,8,9]].
list中不同的维度如果引入了集合":"那么就不能表示矩阵,因为列表列表,只有列没有行。我们只能用列的长度函数len()求一列的长度。

列表的维度变换可以通过numpy 来实现。

简单来说:列表表示集合的范围":“和元素”[]“,不方便表示坐标。
numpy通过坐标逗号”[,]“与范围”:",来表示矩阵的元素.

aaaa
```powershell
在aaaaaaa片

# 开发时间:2022/8/31 9:06
# 开发内容:
# 运行环境:
# 备注内容:
import  numpy
a=[[1,2,3],[4,5,6],[7,8,9]]
print('a:',a)
#list.不具有shape维度的属性,只能一个一个维度的查看
rowshape=len(a)
lineshape=len(a[0])
print("The a's first shape:",rowshape)
print("The a's second shape:",lineshape)

print('list不按照逗号进行切片')
print("第0个元素:")
print("a[0]:".ljust(10),a[0])
print("第1个元素:")
print("a[1]:".ljust(10),a[1])
print("倒数第一个元素:")
print("a[-1]:".ljust(10),a[-1])#-1表示倒数第一的位置
print('\nlist类型加上集合',"符号就代表这个维度的集合'[]'属性,自动加了[]")
print("列表的空:")
print("a[:0]:".ljust(10),a[:0])
print("0到1的元素集合:")
print("a[:1]:".ljust(10),a[:1])

print("1到3的元素集合:")
print("a[0:3]:".ljust(10),a[0:3])
print("a:b:c表示从a到b,以c的间隔(步长)取数:")
print('第1个和第3个元素的集合')
print("a[0:3:1]:".ljust(10),a[0:3:1])
print("列表的第1个元素(第四个元素超过步长):")
print("a[0::3]:".ljust(10),a[0::3])
print("列表的第1个和第2个元素:")
print("a[0:-1:1]:".ljust(10),a[0:-1:1])
print("列表的第1个元素(列表)中的第1个元素:")
print("a[0][0]:".ljust(10),a[0][0])
print("第1个元素(列表)中的第1第2和第3个元素:")
print("a[0][0:3]:".ljust(10),a[0][0:3])
print("第1个列表中的全部元素:")
print("a[0][:]:".ljust(10),a[0][:])
print("第1个元素中中的从1到倒数第1个元素:")
print("a[0][:-1]:".ljust(10),a[0][:-1])
print('第2个元素中的第3个元素:')
print("a[1][2]:".ljust(10),a[1][2])
print("第1和第2个元素的集合中全部元素:")
print("a[0:2][:]:".ljust(10),a[0:2][:])
print("第1和第2个元素为集合的列表的第2个元素:")
print("a[0:2][1]:".ljust(10),a[0:2][1])#
print('列表集合中的第1个元素')
print("a[::][0]:".ljust(10),a[::][0])

a=numpy.array(a)

print("Numpy shape:".ljust(10),a.shape)
print("numpy的格式就和matlab处理一样当作矩阵,按照逗号维度坐标加上,展示")
print('a[0:3,0:3]/a/a[:]/a[:,:]:'.ljust(10),'\n',a[0:3,0:3])
print('矩阵的第1到2行:')
print('a[0:2,:]:',"\n",a[0:2,:])
print('a[1,1]:'.ljust(10),a[1,1])
print('矩阵的左上角四个元素:')
print('a[0:2,0:2]:'.ljust(10),'\n',a[0:2,0:2])
print("矩阵的右下角四个元素:")
print('a[1:3,1:3]:'.ljust(10),'\n',a[1:3,1:3])
print("矩阵的第二列:")
print('a[:,1]:'.ljust(10),'\n',a[:,1])

程序的运行结果展示:

a: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
The a’s first shape: 3
The a’s second shape: 3
list不按照逗号进行切片
第0个元素:
a[0]:
[1, 2, 3]
第1个元素:
a[1]:
[4, 5, 6]
倒数第一个元素:
a[-1]:
[7, 8, 9]

list类型加上集合 符号就代表这个维度的集合’[]'属性,自动加了[]
列表的空:
a[:0]: []

0到1的元素集合:
a[:1]: [[1, 2, 3]]

1到3的元素集合:
a[0:3]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

a : b : c表示从a到b,以c的间隔(步长)取数:
第1个和第3个元素的集合

a[0: 3 :1]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

列表的第1个元素(第四个元素超过步长):
a[0::3]: [[1, 2, 3]]

列表的第1个和第2个元素:
**a[0: -1 :1]: [[1, 2, 3], [4, 5, 6]]

列表的第1个元素(列表)中的第1个元素:
a[0][0]: 1

第1个元素(列表)中的第1第2和第3个元素:
****a[0][0:3]: [1, 2, 3]

第1个列表中的全部元素:
****a[0][:]: [1, 2, 3]

第1个元素中中的从1到倒数第1个元素:
a[0][:-1]: [1, 2]

第2个元素中的第3个元素:
a[1][2]: 6

第1和第2个元素的集合中全部元素:
a[0: 2][:]: [[1, 2, 3], [4, 5, 6]]

第1和第2个元素为集合的列表的第2个元素:####列表这个不好理解
a[0: 2][1]: [4, 5, 6]

列表集合中的第1个元素
a[: :][0]: [1, 2, 3]
“---------------------------------------------------------------------------------------”
Numpy 部分
Numpy shape: (3, 3)
numpy的格式就和matlab处理一样当作矩阵,按照逗号维度坐标加上,展示
a[0:3,0:3]/a/a[:]/a[:,:]:
[[1 2 3]
[4 5 6]
[7 8 9]]

矩阵的第1到2行:
a[0:2,:]:
[[1 2 3]
[4 5 6]]

a[1,1]: 5

矩阵的左上角四个元素:
a[0:2,0:2]:
[[1 2]
[4 5]]

矩阵的右下角四个元素:
a[1:3,1:3]:
[[5 6]
[8 9]]

矩阵的第二列:
a[:,1]:

[2 5 8]

进程已结束,退出代码0

总结通过区别有没有”,“来判断是否是列表还是矩阵,如果需要找到具体的坐标,那么我们需要使用函数a=numpy.array(a) 将一个列表类型转化成矩阵。并且print(a.shape)这个矩阵属性可以使用了,以及reshape的使用。
那么我们变换维度可以通过先将列表list变成矩阵array,之后使用维度reshape()函数变换轴的位置,在使用List()强制变成列表集合的形式
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高山仰止景

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

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

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

打赏作者

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

抵扣说明:

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

余额充值