Python 将理解列表转换为Numpy数组-故障?
我无法将理解列表转换为Python 将理解列表转换为Numpy数组-故障?,python,arrays,list,numpy,list-comprehension,Python,Arrays,List,Numpy,List Comprehension,我无法将理解列表转换为numpy数组。我循环浏览不同的理解列表;不过有些似乎还不错。我通过打印他们的形状验证了这个错误,有些迭代没有返回正确的尺寸。因此,我无法将这些numpy数组(成分)与另一组数组(基本信息)连接起来。另外,我为这些迭代打印了numpy数组本身,并注意到“[”有一个额外的尾随空间。任何帮助都将不胜感激 请参阅下文: (1)我就是这样创建列表的 html = browser.page_source soup = BeautifulSoup(html)
numpy
数组。我循环浏览不同的理解列表;不过有些似乎还不错。我通过打印他们的形状
验证了这个错误,有些迭代没有返回正确的尺寸。因此,我无法将这些numpy数组(成分)与另一组数组(基本信息)连接起来。另外,我为这些迭代打印了numpy数组本身,并注意到“[”有一个额外的尾随空间。任何帮助都将不胜感激
请参阅下文:
(1)我就是这样创建列表的
html = browser.page_source
soup = BeautifulSoup(html)
table = soup.find('div', {'id': 'placeBody_dynField77_divScroll'})
table_body = table.find('tbody')
rows = table_body.findAll('tr')[1:]
Ingredients = []
for row in rows:
cols = row.find_all('td')
cols = [ele.text.strip() for ele in cols]
Ingredients.append([ele for ele in cols if ele])
Ingredients = np.array(Ingredients)
(2)打印形状时,不会返回列数(应为8)
打印(配料)
打印(配料.形状,基本信息2.形状)
>>
[['加氢处理的重环烷馏分(石油),'64742-52-5','n/a','40.00%,'50.00%,'45.00%,'40-numpy不支持参差不齐的排列(并非每行长度相同的排列)。您的成分似乎参差不齐:
>>> [len(x) for x in Ingredients]
[8, 8, 8, 7, 8, 8, 8, 8, 8, 8]
由于numpy不支持此功能,因此它会尽其所能为您提供一个长度为10的object dtype数组。也就是说,您得到的不是数组10x8,而是一个形状为10的数组,其中每个元素只是一个对象(这恰好是一个Python列表,但numpy此时不再关心)
在numpy看到数组之前,您需要将其设置为矩形,无论是通过修复处理还是通过填充或添加伪值,只要合适
请注意,尽管numpy并非真正用于处理混合类型的表格数据:为此,您可能希望使用。numpy不支持不规则数组(并非每行长度相同的数组)。您的成分似乎不规则:
>>> [len(x) for x in Ingredients]
[8, 8, 8, 7, 8, 8, 8, 8, 8, 8]
由于numpy不支持此功能,因此它会尽其所能为您提供一个长度为10的object dtype数组。也就是说,您得到的不是数组10x8,而是一个形状为10的数组,其中每个元素只是一个对象(这恰好是一个Python列表,但numpy此时不再关心)
在numpy看到数组之前,您需要将其设置为矩形,无论是通过修复处理还是通过填充或添加伪值,只要合适
请注意,尽管numpy并不是真正用于处理混合类型的表格数据:为此,您可能希望使用