python的set处理二维数组转一维数组的方法示例
for splitValue in set(dataset[:, featureIndex].tolist()):
首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重;但是set接收的函数是原生array,这个怎么办?我现在有的numpy里面的matrix;于是我查了一下,直接使用matrix.tolist(),但是发现返回值有问题:
import os os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset") dataArr = loadDataSet("ex00.txt") dataMat = mat(dataArr) dataMat[:, 0].tolist()
输出为:
[[0.036098], [0.727098],..
并不是我想要的,因为如果此时将其放于set中将会报错:
set(dataMat[:, 0].tolist()) >>TypeError: unhashable type: 'list'
于是查了一下,做了调整:
import os os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset") dataArr = loadDataSet("ex00.txt") dataMat = mat(dataArr) dataMat[:, 0].A.flatten().tolist() >> [0.036098, 0.712386, ....
很好就是要这种一维的数组,然后再使用数组作为参数放入set中,完美。
set(dataMat[:, 0].A.flatten().tolist())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python numpy实现二维数组和一维数组拼接的方法
撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组. 拼接 3.numpy有很
-
python实现把二维列表变为一维列表的方法分析
本文实例讲述了python实现把二维列表变为一维列表的方法.分享给大家供大家参考,具体如下: c = [[1,2,3], [4,5,6], [7,8,9]] 1.用列表推导式 >>> [n for a in c for n in a ] [1, 2, 3, 4, 5, 6, 7, 8, 9] 2.用嵌套循环展开 >>> result=[] >>> for a in c: for n in a: result.append(n) result #resu
-
python 去除二维数组/二维列表中的重复行方法
之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = np.array([[1, 2],[3, 4],[5, 6],[7, 8],[3, 4],[1, 2]]) print(np.array(list(set([tuple(t) for t in arr])))) 输出: [[1 2] [3 4] [5 6] [7 8]] 如果是二维列表,列表中每个元素还是列表 list2=list(set([tup
-
python分治法求二维数组局部峰值方法
题目的意思大致是在一个n*m的二维数组中,找到一个局部峰值.峰值要求大于相邻的四个元素(数组边界以外视为负无穷),比如最后我们找到峰值A[j][i],则有A[j][i] > A[j+1][i] && A[j][i] > A[j-1][i] && A[j][i] > A[j][i+1] && A[j][i] > A[j][i-1].返回该峰值的坐标和值. 当然,最简单直接的方法就是遍历所有数组元素,判断是否为峰值,时间复杂度为O(n^2
-
对python产生随机的二维数组实例详解
最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列表解析的方法得到随机的二维数组. 具体如下: a = [[random.randint(1, 4) for j in range(1, 3)] for i in range(1, 11)] print(array(a)) 其中random.randint(1, 4)用来产生一个随机整数.此时创建了一个10行2列的数组. [[1 3] [1
-
python中的Numpy二维数组遍历与二维数组切片后遍历效率比较
在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历. 代码如下: import numpy as np import time NUM = 160 a=np.random.random((NUM,NUM)) start = time.time() for i in range(NUM): for j in range(NUM): if a[i][j] == 1.0: pass end1
-
python将二维数组升为一维数组或二维降为一维方法实例
目录 1. 二维(多维)数组降为一维数组 方法1: reshape()+concatenate 函数, 方法2: flatten() 函数, 方法3: itertools.chain 方法4: sum() 方法5:operator.add + reduce 方法6:列表推导式 2. 一维数组升为 2 维数组 方法1:numpy 方法 总结 1. 二维(多维)数组降为一维数组 方法1: reshape()+concatenate 函数, 这个方法是间接法,利用 reshape() 函数的属性,间接
-
Python 用NumPy创建二维数组的案例
前言 上位机实战开发先放一放,今天来学习一个新的内容-NumPy的使用 1 一维数组 例:用普通方法生成一维数组 num = [0 for i in range(1,5)] # 创建一维数组 print(num) # 打印数组 print("-"*50) # 分割线 num[2]=6 # 将第三个元素修改位6 print(num) # 打印数组 print("-"*50) # 分割线 运行结果 例:用numpy生成一维数组 from numpy import * m
-
将二维数组转为一维数组的2种方法
如何将下面的二维数组转为一维数组. 复制代码 代码如下: $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id'=>'78', 'name'=>'lili' ),); 第一种方法: 复制代码 代码如下: foreach($msg as $k => $v){ $ids[] = $id; $names[] = $name; }
-
Python获取二维矩阵每列最大值的方法
因为做项目中间有一个很小的环节需要这个功能,所以就写了一个简单的小函数,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 ''' def get_max_value(martix): ''' 得到矩阵中每一列最大的值 ''' res_list=[] for j in range(len(martix[0])): one_list=[] for i in range(len(martix)): one_list.ap
随机推荐
- PHP has encountered an Access Violation at XXXXXX 的解决方法
- 利用webqq协议使用python登录qq发消息源码参考
- 详解nginx 代理多个服务器(多个server方式)
- 浅析C++中结构体的定义、初始化和引用
- 让iframe子窗体取父窗体地址栏参数(querystring)
- javascript arguments使用示例
- Javascript实现图片懒加载插件的方法
- .net实现ping的实例代码
- python批量制作雷达图的实现方法
- 比较详细的Asp伪静态化方法及Asp静态化探讨
- mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法
- 浅谈Ajax相关及其优缺点
- 总结Python编程中函数的使用要点
- nginx rewrite 伪静态配置参数详细说明
- 学习Java中Class类及其用法
- 详解C++中变量的初始化规则
- python实现获取客户机上指定文件并传输到服务器的方法
- 解析美国东部时间与北京时间相互转换的实现代码
- Linux 管理员手册(6)
- vue中mint-ui的使用方法