python numpy数组转list,无法一一取出

1.问题描述

在使用python 进行字符串处理时候,我们经常用到numpy包,因为其操作起来很方便,但是当我们再想要将numpy类型转为list时,就会出现一些问题:

1.1 numpy数组含有省略号(解决方案)

当我们想要查看详细的numpy数组内容的时候,我们使用

print(filenames)		#此处filenames为一个np数组

命令查看的时候,输出结果则会自动省略一些数据,致使我们后续的操作很难进行:如下所示
python numpy数组转list,无法一一取出_第1张图片
调整方案就是,在引入numpy后,需要设置numpy的行列显示限制,具体解决方案如下:

import numpy as np
np.set_printoptions(threshold=np.inf)       # 不限制numpy显示的列数
np.set_printoptions(linewidth=np.inf)       #设置numpy每一行显示的个数,在此问题中我的数据就是这么长,具体情况具体分析

设置之后,便可看全全部数据:

在这里插入图片描述
此时已经没有省略号了。

1.2 使用reshape改变形状为1维或一列后,数据变为(1,N),不是我们需要的(N)

遇到这种情况时,我们也是无法一一取出np里边的内容的,比如我们想要使用for循环读取一下里边的内容

......无关内容已省略
 wav_sub_10dB=wav_sub_10dB.reshape(1,-1)        #转成一维
 #循环读取里边内容
 for wav_sub_10d in wav_sub_10dB:
        print(wav_sub_10d)

在这里插入图片描述
此时wav_sub_10d获取到的并非是我们期望的某个数据,而是整个的数据,且在后续的操作中很难取出。,问题就出现在wav_sub_10dB的格式上,ndarray:(1,300),而如果想要for循环读取的话,则需要一个一维的数据,需要对是上述代码,作如下修改:

wav_sub_10dB=wav_sub_10dB.reshape(1,-1).flatten()           #转成一维
#循环读取里边内容
for wav_sub_10d in wav_sub_10dB:
       print(wav_sub_10d)

修改后格式如下所示:
在这里插入图片描述

你可能感兴趣的:(开发基础工具及配置,日常,numpy,np转一维,reshape,数据处理)