首页 > 解决方案 > Python 如何使用 (4,500) 标记 numpy 形状

问题描述

大家好,我需要用户输入带有形状的 numpy(无,4,500),那么我该怎么做呢?

因为当我打印时numpy.shape我得到()

虽然我需要(4,500)的形状,它是什么形状?

以及用户如何输入具有上述形状的 numpy

我有这个但打印()

X_test = np.argmax('input')
print(X_test.shape)

这是否意味着 X_test 没有形状或未声明形状?

标签: pythonarrayspython-3.xnumpynumpy-ndarray

解决方案


我认为你在没有太多知识的情况下跳入这个问题numpy

In [155]: np.argmax('input')                                                                   
Out[155]: 0
In [156]: type(_)                                                                              
Out[156]: numpy.int64
In [157]: __.shape                                                                             
Out[157]: ()

我不知道你为什么使用argmax,但这里发生的是:

In [158]: np.array('input')          # make an array from the string                                                               
Out[158]: array('input', dtype='<U5')
In [159]: _.shape                                                                              
Out[159]: ()                     # it's a single element array with 0d shape
In [160]: np.argmax(__)                                                                        
Out[160]: 0

argmax是最大元素的位置,这里默认为 0。因为numpy它实际上返回一个 numpy 整数(不是普通的 Python 整数),因此它也有一个shape0d 形状。

(none,4,500)你提到的形状表明你正在做一些tensorflow教程或类似的工作。 none不是有效的numpy形状术语。

而且你没有declare数组(或 Python 中的任何东西)。您可以创建具有该形状的数组,例如np.zeros((4,500)). 但这不是很有用,除非您要为那些 4*500 元素分配值。

在你谈到的评论中the user inputs strings like sentences。听起来像是某种自然语言学习或其他机器学习。您可能不应该要求用户输入 2000 个字;最好从文件中读取它们。

无论如何,我认为您需要对numpy. 在下一个问题中,提供更多上下文。


根据您最后的评论,我或多或少是对的。除了你的造型似乎比我想象的更进一步。您显示的代码没有显示太多关于numpy. declaring an array可能更有意义keras。我没有直接使用它;只帮助numpy遇到问题的人。


推荐阅读