我对这些数据结构感到困惑。从 GIS 系统中,我使用一个函数来提取元数据(8 个不同的字段)myList = FeatureClassToNumPyArray(...)myList = [('a', 'b', 'c'...) ('aa', 'bb', 'cc'...) ..] # 8 fieldsprint (type(myList ))print (myList.shape)print (myList.size)这会产生:<class 'numpy.ndarray'>(1, 9893)9893# I was expecting to get (9893 rows x 8 cols), as in (8,9893) # or (9893, 8), but anyway, let's not worry about that right now. 所以我试试这个:>>> source = [('a', 'b', 'c') ('aa', 'bb', 'cc')]Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'tuple' object is not callable但是加上一个逗号分隔符,就没问题了……但现在它是一个列表。>>> source = [('a', 'b', 'c'), ('aa', 'bb', 'cc')]>>> type(source)<class 'list'>因此,这个神奇的 GIS 函数可以生成一个数据结构,该数据结构被接受为 numpy 数据数组,但如果我尝试手动创建它,那是不可能的。我错过了什么?
1 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
不知道该怎么做,但 juanpa.arrivillaga 的评论应该被标记为答案。
同样,为什么您期望 print(something) 生成一个字符串,该字符串是生成该对象的有效 python 源代码?那是你错误的基本假设。那就是你所缺少的。print(repr(something)) 通常会让你更接近一些东西,但它永远不能保证是有效的源代码。同样,它可能会返回一个带有某种结构化数据类型的 numpy.ndarray。什么是 myList.dtype?编辑:这是一个非常基本的例子,something = object(); print(something) 现在尝试从字符串表示中重现它……没有理由期望能够做到。– juanpa.arrivillaga 5 月 13 日 21:18
我的问题源于对数据框是什么以及它如何工作的根本误解。花了我一段时间才弄明白。
用我的话来说,它是一个需要通过各种工具/函数来操作的对象……它不仅仅是一个“字符串”矩阵。
添加回答
举报
0/150
提交
取消