拼接数组/删除元素

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

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2