您的位置:首页 > 编程语言 > Python开发

Python 数组操作技巧总结[持续更新]

2016-10-17 10:50 323 查看
开始接触数组进行编程的时候,很多数组操作用内置的函数就可以完成。但是工作中慢慢发现数组的操作很多,并不只是加减和转置就可以很好解决的。

因此开了这个博客,记录用到的一些命令。根据工作使用慢慢更新,也希望能帮助到一些朋友。一个数组的操作

1)将一个数插入一个数组中的任意位置。

nums_one = 999
out_tmp = [ data[:i]+[nums_one]+data[i:] for i in range(len(data)+1)]


python基本特性

lambda, map, reduce, filter 函数

格式化输出,老的方法“%*” ,新的方法 "{}".format()。见这里

数组的encode

快速将一维数组转化为二维

labels = [1, 3, 8]
labels = np.array(labels)[:, None]
[[1],
[3],
[8],]






然后可以快速将该数组进行encode,即将对应的坐标位置标为1,其余位置为0。这个在机器学习对指标的操作中很常见。当然你也可以利用现有的sklearn 这类包完成。
enlabels = np.arange(8) == np.array(labels)[:, None]
# 改成float 型


enlabels = enlabels.astype(np.float32)



两个数组之间的操作

(1)一个二维数组与一维数组的运算。

有时候希望对二维数组中,没一行,或者每一列加减一个一维数组。这时候一维数组的长度与二维数组列/行相等。可以进行如下命令

# 创建二维数组
a = [[1,2,3,4,5]]*5
# 创建以为数组
b = np.arange(1,6,1)
# 2D 数组每一行减去1D数组
print a-b[None,:]
# 2D 数组每一列减去1D数组
print a-b[:,None]


(2)  查看一个数组中是否有包含在另外一个数组的元素。

# numpy的程序立刻搞定。返回布尔数组,长度与A相同,被元素B包含的元素的位置为True
np.in1d(A, B)




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: