python - Numpy:将最后一个轴转换为列表
问题描述
让 numpy 数组为形状 (x, y, z)。我希望它是 (x, y) 形状,每个元素都是 z 长度的列表:[a, b, c, ..., z]
有没有办法用 numpy 方法来做到这一点?
解决方案
您可以使用tolist
并分配给预分配的对象数组:
import numpy as np
a = np.random.randint(0,10,(100,100,100))
def f():
A = np.empty(a.shape[:-1],object)
A[...] = a.tolist()
return A
f()[99,99]
# [4, 5, 9, 2, 8, 9, 9, 6, 8, 5, 7, 9, 8, 7, 6, 1, 9, 6, 2, 9, 0, 7, 0, 1, 2, 8, 4, 4, 7, 0, 1, 2, 3, 8, 9, 6, 0, 1, 4, 7, 0, 7, 9, 3, 9, 1, 8, 7, 1, 2, 3, 6, 6, 2, 7, 0, 2, 8, 7, 0, 0, 1, 8, 2, 6, 3, 5, 4, 9, 6, 9, 0, 2, 5, 9, 5, 3, 7, 0, 1, 9, 0, 8, 2, 0, 7, 3, 6, 9, 9, 4, 4, 3, 8, 4, 7, 4, 2, 1, 8]
type(f()[99,99])
# <class 'list'>
from timeit import timeit
timeit(f,number=100)*10
# 28.67872992530465
推荐阅读
- docker - 如何从运行在 Pod 中的容器访问 Node 服务
- stm32 - STM32 HSE不稳定频率
- ios - 禁用错误的电话号码链接检测 UITextView Swift
- scala - Spark - 将 Array[Array[Map[String,String]]] 类型的列处理成 udf 时出现 java.lang.ClassCastException
- python - 为什么python输出不能正确保存
- javascript - 我如何在javascript中返回两个对象
- haskell - 为什么 GHC 在使用 Coercible 约束时会自相矛盾?
- apache-kafka - 如何解析包含 Union、Map、Array 等的嵌套 GenericRecord?
- ios - 使用未解析的标识符“地图”SwiftUI
- python - 终止循环的问题