Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只有大小为1的数组才能转换为Python标量_Python_Python 3.x_Numpy - Fatal编程技术网

只有大小为1的数组才能转换为Python标量

只有大小为1的数组才能转换为Python标量,python,python-3.x,numpy,Python,Python 3.x,Numpy,我想在同一个图中绘制多个方程。我在这件事上遇到了麻烦 def data(): #func 1 - noisy sin wave x = np.linspace(1, 10000) func1 = 100*(np.sin(x/1000*2*np.pi*5) + np.random.normal(scale=0.1, size=len(x))) ... 我在一个函数data中定义所有方程,该函数有返回线 return np.array([func1, fun2, f

我想在同一个图中绘制多个方程。我在这件事上遇到了麻烦

def data():
    #func 1 - noisy sin wave
    x = np.linspace(1, 10000)
    func1 = 100*(np.sin(x/1000*2*np.pi*5) + np.random.normal(scale=0.1, size=len(x)))
    ...
我在一个函数
data
中定义所有方程,该函数有返回线

return np.array([func1, fun2, func3])
然后我使用

plt.plot(data().T)
但是,func1给出了错误:

only size-1 arrays can be converted to Python scalars

如何修复此问题?

我怀疑问题在于函数输出的数组长度不同。当长度相同时,它对我有效,但如果它们不同,你就无法得到信息

VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
我会做一些类似的事情

function_data = data()
for data in function_data:
    plt.plot(data.T)

我还将使用列表而不是数组作为函数的输出,因为错误消息指出,不推荐使用具有不同大小的列或行的numpy数组。Numpy数组很好,但是数组列表在这种情况下很有用。

您确定问题出在
func1
上,还是说问题出在串联上?您还希望如何绘制1000维矩阵?数据?也就是说,当你转置数据时,假设一切都是正确的,你将有3 x 1000matrix@Onyambu它适用于其他函数,但它们是简单函数,例如
func2=np.random.randn(10000)
所有函数都有10000长。如果我删除func1,所有其他函数都可以。需要完全回溯。当函数需要标量参数(如axis或plot参数)时,通常会产生此错误。换句话说,在错误的位置使用数组参数。从我的实现来看,它们应该是相同的。例如“func2=np.random.randn(10000)”。两者都是10000。函数调用x=np。linspace(11000)返回一个数组,其中50个条目在1和10000之间,而不是10000个条目在0和1之间。Linspace接受默认值num=50的输入(开始、停止、num)。