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

来源:互联网 发布:js c标签的if else 编辑:程序博客网 时间:2024/05/29 07:15


</pre>开始接触数组进行编程的时候,很多数组操作用内置的函数就可以完成。但是工作中慢慢发现数组的操作很多,并不只是加减和转置就可以很好解决的。因此开了这个博客,记录用到的一些命令。根据工作使用慢慢更新,也希望能帮助到一些朋友。<p></p><p></p><p><strong><span style="font-size: 18px;">一个数组的操作</span></strong></p><div>(1)将一个数插入一个数组中的任意位置。</div><div><pre name="code" class="python">data = range(10)nums_one = 999out_tmp = [ data[:i]+[nums_one]+data[i:] for i in range(len(data)+1)]

数组的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包含的元素的位置为Truenp.in1d(A, B)

0 0
原创粉丝点击