拼接数组/删除元素

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、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi