为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能手动复制一个 nd 数组?

为什么我不能手动复制一个 nd 数组?

哈士奇WWW 2022-11-18 16:51:15
我对这些数据结构感到困惑。从 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

我的问题源于对数据框是什么以及它如何工作的根本误解。花了我一段时间才弄明白。

用我的话来说,它是一个需要通过各种工具/函数来操作的对象……它不仅仅是一个“字符串”矩阵。


查看完整回答
反对 回复 2022-11-18
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信