拼接数组/删除元素

2024-09-06 03:32
文章标签 数组 元素 删除 拼接

本文主要是介绍拼接数组/删除元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

矩阵拼接的函数tf.stack()与矩阵分解的函数tf.unstack()

tf.unstack(value, num=None, axis=0, name='unstack')Unpacks the given dimension of a rank-`R` tensor into rank-`(R-1)` tensors.Unpacks `num` tensors from `value` by chipping it along the `axis` dimension.    Args:
      value: A rank `R > 0` `Tensor` to be unstacked.
      num: An `int`. The length of the dimension `axis`. Automatically inferred//一个“int”。尺寸“轴”的长度。自动推断为“无”(默认)。if `None` (the default).
      axis: An `int`. The axis to unstack along. Defaults to the firstdimension. Supports negative indexes.
      name: A name for the operation (optional).    Returns:The list of `Tensor` objects unstacked from `value`.    Raises:
      ValueError: If `num` is unspecified and cannot be inferred.
      ValueError: If `axis` is out of the range [-R, R).
import tensorflow as tf
a = tf.constant([1,2,3])
b = tf.constant([4,5,6])
c = tf.stack([a,b],axis=1)
d = tf.unstack(c,axis=0)
e = tf.unstack(c,axis=1)
print(c.get_shape())
with tf.Session() as sess:print(sess.run(c))print(sess.run(d))print(sess.run(e))(3, 2)[[1 4] 
[2 5] 
[3 6]][array([1, 4]), array([2, 5]), array([3, 6])][array([1, 2, 3]), array([4, 5, 6])]

numpy.delete删除行或列

import numpy as np
A = np.delete(B, 2, axis=0)  # 删除B的第三行
B = np.delete(C, 1, axis=1)  # 删除C的第2列
  • 删除一列
>>> dataset=[[1,2,3],[2,3,4],[4,5,6]]  
>>> import numpy as np  
>>> dataset = np.delete(dataset, -1, axis=1)  
>>> dataset  
array([[1, 2],  [2, 3],  [4, 5]])  
  • 删除多列
arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])  
np.delete(arr, [1,2], axis=1)  
array([[ 1,  4],  [ 5,  8],  [ 9, 12]])  

拼接_numpy列表索引方式

a=np.array([[1,2],[3,4],[5,6],[7,8]])
b=a[:2]
  • numpy.concatenate
    numpy.concatenate((a1, a2, …), axis=0)
    Join a sequence of arrays along an existing axis.
    Parameters:
    a1, a2, … : sequence of array_like
    The arrays must have the same shape, except in the dimension corresponding to axis (the first, by default).
    axis : int, optional
    The axis along which the arrays will be joined. Default is 0.
    Returns:
    res : ndarray
    The concatenated array.
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],[3, 4],[5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],[3, 4, 6]])
###############################
>>> a = np.ma.arange(3)
>>> a[1] = np.ma.masked
>>> b = np.arange(2, 5)
>>> a
masked_array(data = [0 -- 2],mask = [False  True False],fill_value = 999999)
>>> b
array([2, 3, 4])
>>> np.concatenate([a, b])
masked_array(data = [0 1 2 2 3 4],mask = False,fill_value = 999999)
>>> np.ma.concatenate([a, b])
masked_array(data = [0 -- 2 2 3 4],mask = [False  True False False False False],fill_value = 999999)

拼接_tf.concat

这里写图片描述

    pythont1 = [[1, 2, 3], [4, 5, 6]]t2 = [[7, 8, 9], [10, 11, 12]]tf.concat([t1, t2], 0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]tf.concat([t1, t2], 1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]# tensor t3 with shape [2, 3]# tensor t4 with shape [2, 3]tf.shape(tf.concat([t3, t4], 0)) ==> [4, 3]tf.shape(tf.concat([t3, t4], 1)) ==> [2, 6]

拼接_keras.legacy.layers.merge

Help on function merge in module keras.legacy.layers:merge(inputs, mode='sum', concat_axis=-1, dot_axes=-1, output_shape=None, output_mask=None, arguments=None, name=None)Functional merge, to apply to Keras tensors (NOT layers).Returns a Keras tensor.# Example# Argumentsmode: String or lambda/function. If string, must be oneof: 'sum', 'mul', 'concat', 'ave', 'cos', 'dot', 'max'.If lambda/function, it should take as input a list of tensorsand return a single tensor.concat_axis: Integer, axis to use in mode `concat`.dot_axes: Integer or tuple of integers,axes to use in mode `dot` or `cos`.output_shape: Shape tuple (tuple of integers), or lambda/functionto compute output_shape (only if merge mode is a lambda/function).If the latter case, it should take as input a list of shape tuples(1:1 mapping to input tensors) and return a single shape tuple,including the batch size(same convention as the `compute_output_shape` method of layers).node_indices: Optional list of integers containingthe output node index for each input layer(in case some input layers have multiple output nodes).will default to an array of 0s if not provided.tensor_indices: Optional list of indices of output tensorsto consider for merging(in case some input layer node returns multiple tensors).
concat_feat = merge([concat_feat, x], mode='concat', concat_axis=concat_axis, name='concat_'+str(stage)+'_'+str(branch))

拼接_keras.legacy.layers.merge.concatenate()

>>> import keras.legacy.layers as layers
>>> dir(layers)
['AtrousConvolution1D', 'AtrousConvolution2D', 'Highway', 'InputSpec', 'K', 'Layer', 'MaxoutDense', 'Merge', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'activations', 'constraints', 'func_dump', 'func_load', 'initializers', 'inspect', 'merge', 'python_types', 'regularizers', 'warnings']
>>>
>>> dir(layers.Merge)
['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_add_inbound_node', '_arguments_validation', '_get_node_attribute_at_index', 'add_loss', 'add_update', 'add_weight', 'assert_input_compatibility', 'build', 'built', 'call', 'compute_mask', 'compute_output_shape', 'constraints', 'count_params', 'from_config', 'get_config', 'get_input_at', 'get_input_mask_at', 'get_input_shape_at', 'get_losses_for', 'get_output_at', 'get_output_mask_at', 'get_output_shape_at', 'get_updates_for', 'get_weights', 'input', 'input_mask', 'input_shape', 'losses', 'non_trainable_weights', 'output', 'output_mask', 'output_shape', 'set_weights', 'trainable_weights', 'updates', 'weights']
def concatenate(inputs, axis=-1, **kwargs):"""Functional interface to the `Concatenate` layer.# Argumentsinputs: A list of input tensors (at least 2).axis: Concatenation axis.**kwargs: Standard layer keyword arguments.# ReturnsA tensor, the concatenation of the inputs alongside axis `axis`."""return Concatenate(axis=axis, **kwargs)(inputs)
x = layers.concatenate([branch1x1, branch5x5, branch3x3dbl, branch_pool],axis=channel_axis,name='mixed1')

mxnet.ndarray.concat(*data, **kwargs)

这里写图片描述

x = [[1,1],[2,2]]
y = [[3,3],[4,4],[5,5]]
z = [[6,6], [7,7],[8,8]]concat(x,y,z,dim=0) = [[ 1.,  1.],[ 2.,  2.],[ 3.,  3.],[ 4.,  4.],[ 5.,  5.],[ 6.,  6.],[ 7.,  7.],[ 8.,  8.]]Note that you cannot concat x,y,z along dimension 1 since dimension
0 is not the same for all the input arrays.concat(y,z,dim=1) = [[ 3.,  3.,  6.,  6.],[ 4.,  4.,  7.,  7.],[ 5.,  5.,  8.,  8.]]
print('real...')
test_iter.reset()
batch = test_iter.next()
y_te = batch.label[0]
# print(batch.label[0], batch.data[0].shape)for batch in test_iter:y_te = mx.ndarray.concat(y_te, batch.label[0], dim=0)
print(len(batch.label[0]), len(y_te))
mxnet.symbol.Concat(*data, **kwargs)
Parameters: 
data (Symbol[]) – List of arrays to concatenate
dim (int, optional, default='1') – the dimension to be concated.
name (string, optional.) – Name of the resulting symbol.
Returns:    
The result symbol.Return type:    
SymbolExamplesConcat two (or more) inputs along a specific dimension:>>> a = Variable('a')
>>> b = Variable('b')
>>> c = Concat(a, b, dim=1, name='my-concat')
>>> c>>> SymbolDoc.get_output_shape(c, a=(128, 10, 3, 3), b=(128, 15, 3, 3))
{'my-concat_output': (128L, 25L, 3L, 3L)}
mxnet.symbol.slice_axis(data=None, axis=_Null, begin=_Null, end=_Null, name=None, attr=None, out=None, **kwargs)
Parameters: 
data (Symbol) – Source input
axis (int, required) – Axis along which to be sliced, supports negative indexes.
begin (int, required) – The beginning index along the axis to be sliced, supports negative indexes.
end (int or None, required) – The ending index along the axis to be sliced, supports negative indexes.
name (string, optional.) – Name of the resulting symbol.
Returns:    
The result symbol.Return type:Examples:x = [[  1.,   2.,   3.,   4.],[  5.,   6.,   7.,   8.],[  9.,  10.,  11.,  12.]]slice_axis(x, axis=0, begin=1, end=3) = [[  5.,   6.,   7.,   8.],[  9.,  10.,  11.,  12.]]slice_axis(x, axis=1, begin=0, end=2) = [[  1.,   2.],[  5.,   6.],[  9.,  10.]]slice_axis(x, axis=1, begin=-3, end=-1) = [[  2.,   3.],[  6.,   7.],[ 10.,  11.]]

这篇关于拼接数组/删除元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140877

相关文章

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求