python numpy报错:VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences

注意:标题中说是”报错”,但是这事实上只是”警告”。表依然可以正常导出。

今天遇到了这个问题,查到了这篇博文:https://blog.csdn.net/AugustMe/article/details/107971451
博主给了一个很开倒车的方案:降级numpy。
理所当然的被质疑了,结果发火了。然后说:

你觉得你会,你自己出个教程啊

不是我断章取义,而是这句话的前后都是脏话,我引过来可能就过不了审了(虽然我不知道他是怎么过的)
这句话刺激了我出这个教程。
(其实他在评论中说:

通过降低版本的方法,代价较低;也可以改变代码部分,让代码适应新的或者高的版本,但是这种方法代价比较大。望采纳。

这句话放到文章中的话,争议应该小很多)

上文提到的博主指出,他的方法来自:
https://stackoverflow.com/questions/63097829/debugging-numpy-visibledeprecationwarning-ndarray-from-ragged-nested-sequences
但这个链接中的第一个回答指出,这个warning可以关掉:

np.warnings.filterwarnings('ignore', category=np.VisibleDeprecationWarning)

可能是那位博主不爱看英文罢

首先是为什么会这样:
用人话说就是不够整齐。
这是一个表套表:

[['a','b'],['c','d'],['e','f']]

可以理解为这样:

a b
c d
e f

随便插入一个,变成这样:

[['a','b'],['c','d','x'],['e','f']]

可以理解为这样:

a b
c d x
e f

就不整齐了。

也可以是维度上不整齐,也就是套娃层数不一样

[['a'],['b'],'c']

这个表中a和b都在第二层,c在第一层,我在大气层 ,所以不齐

EDIT:
我当时只是想找个方式存储数据,然后就有教程告诉我用numpy存表。这是不对的,因为numpy是用来高性能计算的,而不是就存个表。一般存数据用json模块就够了,实在不行加一个pickle。

numpy存储数据,主要用在人工智能方面,因为人工智能的py代码基本都用到了numpy,因此用numpy保存顺理成章。你用numpy存储的元素,比如图像本来就应该是上述的”整齐的”,如果不齐,你的代码写的 一定有问题。

对降级模块的看法:并不建议降级模块,因为指不定哪天你用到的另一个模块依赖了你降级的模块的最新版本,就不好了。 只是不建议,没有不让,别喷我。
EDIT:
numpy恐怕是个例外,他的各种版本差异当真难搞。但是其实这问题不大。主环境中numpy保持最新,遇到要求特定版本的numpy就开个virtualenv。

Original: https://blog.csdn.net/TsXor/article/details/119518751
Author: TsXor
Title: python numpy报错:VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/761632/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球