python 中列表常用的都是二维或者三位的列表,格式如下:a=[[1 ,2,3],[4,5,6],[7,8,9]].
list中不同的维度如果引入了集合”:”那么就不能表示矩阵, 因为列表列表,只有列没有行。我们只能用列的长度函数len()求一列的长度。
列表的维度变换可以通过numpy 来实现。
简单来说:列表表示集合的范围”:”和元素”[]”,不方便表示坐标。
numpy通过坐标逗号”[,]”与范围”:”,来表示矩阵的元素.
aaaa
`powershell
在aaaaaaa片
import numpy
a=[[1,2,3],[4,5,6],[7,8,9]]
print('a:',a)
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])
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()强制变成列表集合的形式。

Original: https://blog.csdn.net/qq_43158059/article/details/126630252
Author: 紫钺-高山仰止
Title: python中列表(list)与numpy(array)的区别,行与列与维度的选择
相关阅读
Title: 在不同版本Python中安装PyQT5及PyQT5-Tools
QT是跨平台C++库的集合,它实现以高级API来访问桌面和移动系统的许多方面,包括定位和定位服务、多媒体、NFC和蓝牙连接、基于Chromium的web浏览器以及传统的UI开发。
PyQT5是QT v5的一组完整的Python绑定。它实现了超过35个扩展模块,并使Python在所有支持的平台(包括IOS和Android)上被用作C++的替代应用程序开发语言。PyQT5也可以嵌入基于C++的应用程序中,以允许这些应用程序增强功能。
PyQT5具有简单易用、功能强大、跨平台支持、性能高、文档齐全(除了自身文档外,也几乎可以通用QT的文档)、稳定性高、开源免费等,特别是还提供Designer工具,可以通过图形化拖拉方式简化窗口界面设计,生成的UI界面文件可以通过提供的UIC工具转化为Python程序!
因此PyQT5在Python窗口程序设计方面广受欢迎。
安装PyQT5其实本来很简单,在命令窗口输入:
pip install pyqt5
就能自动安装,关键在于安装PyQT5-Tools,在Python版本高于3.9时就会出错,安装不成功!
如果你不想用PyQT5 Designer工具,那也就无所谓了,直接用就行了,如果还是想用Designer,就得想办法安装PyQT5-Tools。
经过一番上网查资料及验证,本人整理出具体的安装方法:
在命令窗口输入:
Python --version
可以得到Python的版本号,例如:
C:\>python --version
Python 3.8.1
目前Python的版本已经更新到3.10.7。
在命令窗口输入:
pip install pyqt5
pip install pyqt5_tools
==========PyQT5==========
PyQT5-sip-12.11.0
PyQT5-QT5-5.15.2
PyQt5-5.15.4 (注:若要安装PyQT5-Tools,目前只能这个版本)
==========PyQT5-Tools==========
qt5-applications-5.15.2.2.2
click-7.1.2 (注:若要安装qt5-tools,目前只能这个版本)
qt5-tools-5.15.2.1.2
python-dotenv-0.21.0
PyQT5-plugins-5.15.4.2.2
PyQT5-tools-5.15.4.3.2
用pip离线安装,安装顺序同上。
一切顺利的话,下一步按照网上介绍配置使用就行了。
方法一:安装PyQT5Designer(毕竟我们安装PyQT5-Tools的目的是使用Designer):
在命令窗口输入:
pip install pyqt5designer
离线安装,也是到pypi库中下载PyQT5Designer相关包安装就行了,这里就不赘述了。
pip install pyqt5_sip
pip install pyqt5_qt5
pip install ./PyQt5-5.15.4-py3-none-win_amd64.whl
pip install qt5_applications==5.15.2.2.2
pip install click==7.1.2
pip install qt5_tools==5.15.2.1.2
pip install python_dotenv==0.21.0
pip install ./pyqt5_plugins-5.15.4.2.2-py3-none-win_amd64.whl
pip install pyqt5_tools==5.15.4.3.2
一切顺利的话就会安装成功,如果离线安装的话,除了上述两个特殊包外,也是去pypi库里去下载相关版本的包(与上述第(二)种情况相同的包),这里不再重复了。
如果是在线安装,按照我的方法一般不会出现问题,高版本的Python一定要下载这两个改造包安装;
如果是离线安装,下载的时候可能同一个版本有不同的包文件,其中只有正确的包才能安装,这个就需要自行下载试试,一般带有”none”的文件都没问题。
Original: https://blog.csdn.net/zoomgu680/article/details/126994922
Author: zoomgu680
Title: 在不同版本Python中安装PyQT5及PyQT5-Tools
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/322266/
转载文章受原作者版权保护。转载请注明原作者出处!