如何将Python列表转换为列向量(单列矩阵)
如何将Python列表转换为单列矩阵(Vector)
嘿,这个需求在数据处理或者线性代数相关的场景里挺常见的,我给你分享几个简单好用的实现方法:
方法1:纯Python列表推导式(无第三方依赖)
这是最直接也最轻量化的方式,不需要安装任何额外库,一行代码就能搞定:
original_list = [1, 2, 3] column_vector = [[x] for x in original_list] print(column_vector) # 输出: [[1], [2], [3]]
原理很简单:遍历原列表中的每一个元素,把每个元素单独包裹进一个子列表里,最终就形成了单列矩阵的结构。
方法2:使用Numpy库(适合数据科学场景)
如果你平时用Numpy做数据处理,那可以借助它的数组变形功能来实现,两种写法都可以:
import numpy as np original_list = [1, 2, 3] # 方式A:用reshape方法 arr = np.array(original_list) column_vector = arr.reshape(-1, 1) # 方式B:用np.newaxis添加维度 column_vector = arr[:, np.newaxis] # 如果需要转回普通Python列表格式 column_vector_list = column_vector.tolist() print(column_vector_list) # 输出: [[1], [2], [3]]
这里reshape(-1, 1)里的-1表示让Numpy自动计算行数(这里就是原列表的长度3),1指定列数为1,刚好符合单列矩阵的要求;np.newaxis则是给原一维数组新增一个列维度。
方法3:使用map函数(另一种纯Python写法)
如果你喜欢函数式编程风格,也可以用map配合匿名函数来实现:
original_list = [1, 2, 3] column_vector = list(map(lambda x: [x], original_list)) print(column_vector) # 输出: [[1], [2], [3]]
不过这种写法的可读性不如列表推导式,一般更推荐第一种纯Python方法。
内容的提问来源于stack exchange,提问作者Peter K
相关产品推荐
相关产品推荐

