python中list转换为数组

1、list转换为数组

python中list转换为数组的方法为:b = np.array(list)

今天在使用该方法将二维list转换为二维数组时一直不成功,结果仍然是两个list,最后发现是两个list的元素数目不一样导致的,最后修改使两者数目一致,转换成功

list对其元素的类型和各元素所包含的子元素的类型及数目没有要求,这和数组不同,数组要求类型和数目必须相同,所以在将list转换为array时需要注意这一点

2、list与数组的读取

在python中,普通的列表list和numpy中的数组array是不一样的,最大的不同是:一个列表中可以存放不同类型的数据,包括int、float和str,甚至布尔型;而一个数组中存放的数据类型必须全部相同,int或float。 ? 在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,4]需要4个指针和四个数据,增加了存储和消耗cpu,而array1=numpy.array([1,2,3,4])只需要存放四个数据,读取和计算更加方便,因此在做纯数字操作时,建议使用array。 ? 也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:

1 a = [[1, 2, 3], [4, 5, 6]]
2 print(a[0])
3 # 结果为:[1, 2, 3]
4 print(a[:, 0])  # 以数组的方式读取一列,报错
5 # TypeError: list indices must be integers or slices, not tuple
1 #可以用列表解析的方式读取一列
2 a = [[1, 2, 3], [4, 5, 6]]
3 b = [x[0] for x in a]
4 print(b)
5 # 结果为:[1, 4]
1 # 对于数组可以直接读取
2 a = [[1, 2, 3], [4, 5, 6]]
3 a = np.array(a)
4 print(a[:, 0])
5 # 结果为:[1 4]

本文来自 lyshello123 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/songyunli1111/article/details/78109976?utm_source=copy

原文地址:https://www.cnblogs.com/latup/p/9690992.html

时间: 2024-11-08 10:27:19

python中list转换为数组的相关文章

python 中字典、数组

a = {"k1":"v1","A":1,"a":2,5:"i5"} a["A"] ="直接修改" a["aa"]="没有的键是新建" del a["a"] #删除一个元素 d.clear() #清空一个字典 1.字典是键值对,没有顺序, 2.键大小写敏感 3.键值可以是混合类型的 b = ["a&

Java中List转换为数组,数组转List

今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本.如下:ArrayList<String> list=new ArrayList<String>();String strings[]=(String [])list.toArray(); 这样写代码个人觉得应该没什么问题,编译也没有问题.可是具体运行的时候报异常,如下:Exception in thread "main" java.lang.ClassCastException: [Ljava.l

python中多维数组ndarray合并

http://blog.csdn.net/pipisorry/article/details/39215089 numpy中ndarray的多维度上的合并 实现matlab data1=[r.*cos(t),r.*sin(t)];的功能: 实现matlab  data=[data1;data2];的功能 data_pos = [[-0.00870993  0.84913981] [-0.28528784  0.2612078 ] [-0.4475744   0.43677346] [-0.247

Python中2维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??

例如将a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]];转化为一个字典b={1:[100,102,102],2:[102,456],3:[789]} 如果用强制转换: 1 >>> a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]]; 2 >>> b=dict(a) 3 >>> b 4 {1: 106, 2: 456, 3: 789} 5 >&

python中数组,列表,元组的区别、定义、功能

准确的来说,在python中是没有数组类型的,python中取而代之的是列表和元组.列表比元组好用,因为元组一旦定义就没法修改.而列表不仅可以和数组一样按索引访问,还有一堆的功能. 列表: (1)添加 往列表a的尾部追加元素:a.append(i) 往列表a中的任何位置追加元素:a.insert(i,elem),其中i表示索引位置,elem表示元素. (2)删除: 删除指定位置的元素:del a[i] 删除列表中的元素: a.remove(elem) 删除列表尾部的元素(有点像栈pop哈哈):

[Python-MATLAB] 在Python中调用MATLAB的API

可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html MATLAB Engine API的使用文档: http://cn.mathworks.com/help/matlab/matlab-engine-for-python.html 原材料: 1.MATLAB 2015a  32位的 2.Python 2.7.13    32位

python中的矩阵、多维数组----numpy

1. 引言 最近在将一个算法由matlab转成python,初学python,很多地方还不熟悉,总体感觉就是上手容易,实际上很优雅地用python还是蛮难的.目前为止,觉得就算法仿真研究而言,还是matlab用得特别舒服,可能是比较熟悉的缘故吧.matlab直接集成了很多算法工具箱,函数查询.调用.变量查询等非常方便,或许以后用久了python也会感觉很好用.与python相比,最喜欢的莫过于可以直接选中某段代码执行了,操作方便,python也可以实现,就是感觉不是很方便. 言归正传,做算法要用

在Python中建立N维数组并赋初值

在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法. 可以用列表解析的方式,eg: >>> mat=[[0 for i in range(5)] for j in range(5)] >>> mat [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 这样就建立了一

python中如何表示多维数组(即矩阵形式)

python中如何表示多维数组 在java或者c以及其他语言中,表示个"整型3行4列"的矩阵,可以这样声明:int a[3][4]; 但是在python中一不能声明变量int,二不能列出维数.我们只能利用列表中夹带列表形式表示. 以实际例子为例,想将文件中如下格式的数据读取出来,,文件中的每行数据是一个样本,列数是每个样本的属性个数.我们希望将其读取出来组合成N*2的矩阵形式,以便于对这些数据进行处理. 实现的代码如下: dataSet = [] #列表,用来表示,列表中的每个元素也是