尝试在 Python 中创建人工数据框时遇到错误
encountering as error when trying to create a artificial dataframe in Python
这是我的第一个post,如有任何遗漏请见谅。
正在尝试创建人工数据框以使用 k 均值聚类。在 运行 数据集创建函数和查看数据框时出现此错误,如下所示。
TypeError: _append_dispatcher() missing 1 required positional argument: 'values'
非常感谢您的支持和帮助解决。
from scipy.stats import norm
import random
from numpy import *
import numpy as np
from ast import literal_eval
from pandas import DataFrame
def create_clustered_data(N,k):
random.seed(10)
points_per_cluster=float(N)/k
x=[]
for i in range(k):
income_centroid=random.uniform(20000,200000)
age_centroid=random.uniform(20,70)
for j in range(int(points_per_cluster)):
x=np.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
x=np.array(x)
return(x)
df=create_clustered_data(100,5)
df
错误信息
TypeError Traceback (most recent call last)
<ipython-input-204-0ff0b56b46c6> in <module>
18 return(x)
19
---> 20 df=create_clustered_data(100,5)
21 df
22
<ipython-input-204-0ff0b56b46c6> in create_clustered_data(N, k)
14 age_centroid=random.uniform(20,70)
15 for j in range(int(points_per_cluster)):
---> 16 x=np.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
17 x=np.array(x)
18 return(x)
<__array_function__ internals> in append(*args, **kwargs)
TypeError: _append_dispatcher() missing 1 required positional argument: 'values'
这里 x=[] 创建一个列表,而不是一个 numpy 数组,同时检查 numpy append 函数的语法。
解决该问题的一种方法是使用 list.append 函数将其附加到列表,然后将列表转换为 numpy 数组。
from scipy.stats import norm
import random
from numpy import *
import numpy as np
from ast import literal_eval
from pandas import DataFrame
def create_clustered_data(N,k):
random.seed(10)
points_per_cluster=float(N)/k
x=[]
for i in range(k):
income_centroid=random.uniform(20000,200000)
age_centroid=random.uniform(20,70)
for j in range(int(points_per_cluster)):
x.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
ar = np.array(x)
return(ar)
df=create_clustered_data(100,5)
df
这是我的第一个post,如有任何遗漏请见谅。
正在尝试创建人工数据框以使用 k 均值聚类。在 运行 数据集创建函数和查看数据框时出现此错误,如下所示。
TypeError: _append_dispatcher() missing 1 required positional argument: 'values'
非常感谢您的支持和帮助解决。
from scipy.stats import norm
import random
from numpy import *
import numpy as np
from ast import literal_eval
from pandas import DataFrame
def create_clustered_data(N,k):
random.seed(10)
points_per_cluster=float(N)/k
x=[]
for i in range(k):
income_centroid=random.uniform(20000,200000)
age_centroid=random.uniform(20,70)
for j in range(int(points_per_cluster)):
x=np.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
x=np.array(x)
return(x)
df=create_clustered_data(100,5)
df
错误信息
TypeError Traceback (most recent call last)
<ipython-input-204-0ff0b56b46c6> in <module>
18 return(x)
19
---> 20 df=create_clustered_data(100,5)
21 df
22
<ipython-input-204-0ff0b56b46c6> in create_clustered_data(N, k)
14 age_centroid=random.uniform(20,70)
15 for j in range(int(points_per_cluster)):
---> 16 x=np.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
17 x=np.array(x)
18 return(x)
<__array_function__ internals> in append(*args, **kwargs)
TypeError: _append_dispatcher() missing 1 required positional argument: 'values'
这里 x=[] 创建一个列表,而不是一个 numpy 数组,同时检查 numpy append 函数的语法。 解决该问题的一种方法是使用 list.append 函数将其附加到列表,然后将列表转换为 numpy 数组。
from scipy.stats import norm
import random
from numpy import *
import numpy as np
from ast import literal_eval
from pandas import DataFrame
def create_clustered_data(N,k):
random.seed(10)
points_per_cluster=float(N)/k
x=[]
for i in range(k):
income_centroid=random.uniform(20000,200000)
age_centroid=random.uniform(20,70)
for j in range(int(points_per_cluster)):
x.append([random.normal(income_centroid,10000),random.normal(age_centroid,2)])
ar = np.array(x)
return(ar)
df=create_clustered_data(100,5)
df