np.column_stack()数组与列表list的区别

本文探讨了np.column_stack()函数中1维数组和2维数组使用时的区别。当处理1维数据时,该函数会在列上进行扩展,保持行数不变;而对于2维的3*1数组或list,同样遵循列扩展的原则。与np.hstack()对比,np.column_stack()更侧重于列方向的堆叠操作。
摘要由CSDN通过智能技术生成

关于np.column_stack()里面1维数组使用[1维数据]之后的区别

np.column_stack()中的axis类似于np.hstack(tuple)。
关于np.hstack中的理解:Stack arrays in sequence horizontally (column wise)
np.hstack((a,b)),如果a、b是list,则在列上叠加;如果a、b是矩阵array,则在行相同时扩展列,行不变。参见官网例子

    >>> a = np.array((1,2,3))
    >>> b = np.array((2,3,4))
    >>> np.hstack((a,b))
    array([1, 2, 3, 2, 3, 4])
    >>> a = np.array([[1],[2],[3]])
    >>> b = np.array([[2],[3],[4]])
    >>> np.hstack((a,b))
    array([[1, 2],
           [2, 3],
           [3, 4]])

其中np.column_stack()与np.hstack()区别: 对于1d的list,会行不变列扩展;对于2d的array,如3*1的array或者list,一样是行不变列扩展。

# 一
a=[1, 2, 3]
b=[11, 22, 33]
np.column_stack((a,b))
Out[21]: 
array([[ 1, 11],
       [ 2, 22],
       [ 3, 33]])
 # 二
np.column_stack(([[1],[2],[3]],[[11],[12],[13]]))
Out[22]: 
array([[ 1, 11],
       [ 2, 12],
       [ 3, 13]])
# 三
a_array = np.array([[1],[2],[3]])
b_array = np.array([[2],[3],[4]])
np.column_stack((a_array, b_array))
Out[26]: 
array([[1, 2],
       [2, 3],
       [3, 4]])

import numpy as np
# np.array((1,2,3),(11,22,33))
a=[1,2,3];b=
请帮我详细分析以下python代码的作用import numpy as np from matplotlib import pyplot as plt import pandas as pd from sklearn.cluster import AgglomerativeClustering from sklearn.cluster import KMeans # 读取 Excel 文件数据 df = pd.read_excel(r'D:/存储桌面下载文件夹/管道坐标数据.xlsx') label = df['序号'].values.tolist() x_list = df['X 坐标'].values.tolist() y_list = df['Y 坐标'].values.tolist() data = np.column_stack((x_list, y_list, label)) # 训练模型 ac = AgglomerativeClustering(n_clusters=18, affinity='euclidean', linkage='average') #ac=KMeans(n_clusters=12,n_init='auto') clustering = ac.fit(data[:, :-1]) # 获取每个数据所属的簇标签 cluster_labels = clustering.labels_ print(cluster_labels) # 将簇标签与数据合并,并按照簇标签排序 df['cluster_label'] = cluster_labels df_sorted = df.sort_values(by='cluster_label') # 保存排序后的结果到 CSV 文件 df_sorted.to_csv('18 类_result.csv', index=False) # 绘制聚类散点图 unique_labels = np.unique(cluster_labels) colors = ['red', 'blue', 'green', 'purple', 'orange', 'yellow', 'silver', 'cyan', 'pink', 'navy', 'lime', 'gold', 'indigo', 'cyan', 'teal', 'deeppink', 'maroon', 'firebrick', 'yellowgreen', 'olivedrab'] # 预定义颜色列表 for label, color in zip(unique_labels, colors): cluster_points = data[cluster_labels == label] plt.scatter(cluster_points[:, 0], cluster_points[:, 1], c=color, label=f'Cluster {label}') plt.scatter(26, 31, color='gold', marker='o', edgecolors='g', s=200) # 把 corlor 设置为空,通过 edgecolors 来控制颜色 plt.xlabel('X 坐标') plt.ylabel('Y 坐标') plt.legend() plt.show()
07-24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值