• 不同于传统的FDK算法，该算法首先将锥形束投影数据重排为倾斜平行投影数据，然后再经过加权滤波和反投影重建，最后重建出待测物体的三维结构。数据仿真实验结果表明，该算法在保持与传统FDK算法有相同的计算复杂度的...
• 基于图像数据重排的产品表面缺陷检测算法研究.pdf
• 行业资料-电子功用-SDH帧头检测及数据重排电路.pdf
• torch.Tensor.permute - 数据重排 重新排列维度，不改变维度。 1. torch.Tensor.permute Python method, in torch.Tensor 1.1 permute(*dims) -> Tensor Returns a view of the original tensor with its ...


torch.Tensor.permute - 数据重排

重新排列维度，不改变维度。
1. torch.Tensor.permute
Python method, in torch.Tensor
1.1 permute(*dims) -> Tensor
Returns a view of the original tensor with its dimensions permuted. 返回其尺寸已排列的原始张量的视图。
1.2 Parameters
*dims (int...) - The desired ordering of dimensions. 期望的维度顺序。
1.3 Example
(base) yongqiang@yongqiang:~$conda env list # conda environments: # base * /home/yongqiang/miniconda3 pt-1.4_py-3.6 /home/yongqiang/miniconda3/envs/pt-1.4_py-3.6 (base) yongqiang@yongqiang:~$ conda activate pt-1.4_py-3.6
(pt-1.4_py-3.6) yongqiang@yongqiang:~$python Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> torch.__version__ '1.4.0' >>> exit() (pt-1.4_py-3.6) yongqiang@yongqiang:~$

(pt-1.4_py-3.6) yongqiang@yongqiang:~$python Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> >>> x = torch.randn(2, 3, 5) >>> x tensor([[[ 1.0919, -0.5716, -0.2230, -1.3081, -0.5326], [-0.8434, 0.9088, 0.7279, -1.3815, -0.4925], [-0.4546, -2.3575, 0.4141, 0.4549, -0.2353]], [[-1.2896, -0.2758, -0.7352, 0.0897, -0.2647], [ 1.4542, 0.3866, -1.9141, -1.2314, -0.4329], [-0.6978, 0.8083, -1.2807, -1.8151, 0.2868]]]) >>> x.size() torch.Size([2, 3, 5]) >>> >>> y = x.permute(2, 1, 0) >>> y tensor([[[ 1.0919, -1.2896], [-0.8434, 1.4542], [-0.4546, -0.6978]], [[-0.5716, -0.2758], [ 0.9088, 0.3866], [-2.3575, 0.8083]], [[-0.2230, -0.7352], [ 0.7279, -1.9141], [ 0.4141, -1.2807]], [[-1.3081, 0.0897], [-1.3815, -1.2314], [ 0.4549, -1.8151]], [[-0.5326, -0.2647], [-0.4925, -0.4329], [-0.2353, 0.2868]]]) >>> >>> y.size() torch.Size([5, 3, 2]) >>> >>> exit() (pt-1.4_py-3.6) yongqiang@yongqiang:~$

2. permute(0, 3, 2, 1)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# yongqiang cheng

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import torch
import numpy as np

np_data = np.array([[[[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]]]])

print("\nnp_data.size():")
print(np_data.shape)

print("np_data:")
print(np_data)

src_data = torch.tensor(np_data)
print("\nsrc_data.size():")
print(src_data.size())

print("src_data:")
print(src_data)

dst_data = src_data.permute(0, 3, 2, 1)
print("\ndst_data.size():")
print(dst_data.size())

print("dst_data:")
print(dst_data)


/home/yongqiang/miniconda3/envs/pt-1.4_py-3.6/bin/python /home/yongqiang/pycharm_work/yongqiang.py

np_data.size():
(1, 1, 4, 3)
np_data:
[[[[ 1  2  3]
[ 4  5  6]
[ 7  8  9]
[10 11 12]]]]

src_data.size():
torch.Size([1, 1, 4, 3])
src_data:
tensor([[[[ 1,  2,  3],
[ 4,  5,  6],
[ 7,  8,  9],
[10, 11, 12]]]])

dst_data.size():
torch.Size([1, 3, 4, 1])
dst_data:
tensor([[[[ 1],
[ 4],
[ 7],
[10]],

[[ 2],
[ 5],
[ 8],
[11]],

[[ 3],
[ 6],
[ 9],
[12]]]])

Process finished with exit code 0

3. Transpose matrix in C Program
//======================================================================================================================
// Transpose matrix in C Program
// Yongqiang Cheng
//======================================================================================================================

#include <iostream>

void transpose(const float *input_data, float *output_data, const int row, const int col) {

for (int i = 0; i < row; ++i) {
const float *ptr_in = input_data + i * col;
for (int j = 0; j < col; ++j) {
output_data[j * row + i] = ptr_in[j];
}
}
}

const int len = 3 * 4;

int main() {
const float input_data[len] = {1, 1, 1, 1,
2, 2, 2, 2,
3, 3, 3, 3};
float output_data[len] = {0};

std::cout << "The size of array is " << len << ".\n";

int row = 3, col = 4;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
printf("%f ", input_data[i * 4 + j]);
}
printf("\n");
}

printf("\n");

transpose(input_data, output_data, row, col);

for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 3; ++j) {
printf("%f ", output_data[i * 3 + j]);
}
printf("\n");
}

printf("\n");

std::cout << "Hello, World!" << std::endl;
return 0;
}


/home/yongqiang/CLionProjects/hash_table/cmake-build-debug/hash_table
The size of array is 12.
1.000000 1.000000 1.000000 1.000000
2.000000 2.000000 2.000000 2.000000
3.000000 3.000000 3.000000 3.000000

1.000000 2.000000 3.000000
1.000000 2.000000 3.000000
1.000000 2.000000 3.000000
1.000000 2.000000 3.000000

Hello, World!

Process finished with exit code 0

展开全文
• [3,34,5,6,4,8]}) df2 = pd.DataFrame({'name':['a','b','c','d','e','h'], 'key1':[1,1,1,3,3,3], 'date2':[33,44,23,45,66,77]}) df1,df2 ''' 数据框之间的左右连接（类似SQL中的表关联） ''' df = pd.merge(df1,...
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 25 16:41:03 2019

@author: weiping
"""

import pandas as pd
import numpy as np
df1  = pd.DataFrame({'name':['a','b','c','d','f','g'],
'key1':[1,1,1,2,2,2],
'date1':[3,34,5,6,4,8]})
df2  = pd.DataFrame({'name':['a','b','c','d','e','h'],
'key1':[1,1,1,3,3,3],
'date2':[33,44,23,45,66,77]})
df1,df2

'''
数据框之间的左右连接（类似SQL中的表关联）
'''
df = pd.merge(df1,df2,on = 'name',how = 'left')#不限制how的内容 默认 inner
df

df = pd.merge(df1,df2,left_on = 'name',right_on = 'name',how = 'right')
df

df = pd.merge(df1,df2,on = ['name','key1'],how = 'left') # 联合字段关联
df
'''
索引上的连接
'''
df1 = pd.DataFrame({"key":['q','w','e','r','q','e','e'],
"data": range(7)})
df2 = pd.DataFrame({"da":[3,6,7]},index = ['a','q','e'])
df1,df2
pd.merge(df1,df2,left_on = 'key',right_index =True,how = 'right')

'''
轴向连接（pd.concat)
'''
#数组的轴向连接
arr = np.arange(12).reshape(3,4)
arr1 = np.arange(16).reshape(4,4)
np.concatenate([arr,arr],axis = 1 ) # 按列拼接
np.concatenate([arr,arr1],axis = 1)#报错  数组拼接 必须轴向数据条数一致

#数据框的轴向连接

df1 = pd.DataFrame(arr,columns = ['a','b','c','d'])
pd.concat([df1,df1]) # 默认axis = 0 按行连接
pd.concat([df1,df1],axis = 1 ) # 按列连接

'''
合并重叠数据（打补丁）
'''

a = pd.DataFrame(list(range(7)),columns=['c1'])
a.ix[2:3] = np.nan
a.ix[4:5] = np.nan
b = pd.DataFrame(list(range(4,11)),columns = ['c2'])
#np.where
c = pd.DataFrame(np.where(pd.isnull(a),b,a),columns = ['c3']) # np.where  类似 if  else  返回数组
#combine_first
a['c1'].combine_first(b['c2']) # 与np.where 效果一致 返回 数据框

'''
长表 转化 宽表
'''

df = pd.DataFrame({'t1':[11,11,11,22,22,22,33,33,33],
'item':['a','b','c','a','b','c','a','b','c'],
'value':[3.4,3,4,5,6,7,8,8,9]})
df
'''
Out[59]:
t1 item  value
0  11    a    3.4
1  11    b    3.0
2  11    c    4.0
3  22    a    5.0
4  22    b    6.0
5  22    c    7.0
6  33    a    8.0
7  33    b    8.0
8  33    c    9.0
'''
df2 = df.pivot('item','t1')
df2
'''
Out[61]:
value
t1      11   22   33
item
a      3.4  5.0  8.0
b      3.0  6.0  8.0
c      4.0  7.0  9.0
'''
df2 = df.pivot('t1','item')
df2
'''
Out[62]:
value
item     a    b    c
t1
11     3.4  3.0  4.0
22     5.0  6.0  7.0
33     8.0  8.0  9.0
'''
# 宽表
test = pd.DataFrame(fake_data, columns=['subject', 'A', 'B', 'C'])
test
'''
subject	A	B	C
0	math	88	70	60
1	english	90	80	78
'''
# 转换为长表
pd.melt(test, id_vars=['subject'])
'''
subject	variable	value
0	math	A	88
1	english	A	90
2	math	B	70
3	english	B	80
4	math	C	60
5	english	C	78
'''

展开全文
• 场景和模拟数据： excel里有一份产品详情表，包含SKU编码、SKU名称、颜色和尺码，属性是按列排放的，但是部分SKU的属性是空的。这次的任务是把这份excel数据读到Python里面，并且要把属性转成按行排列，excel里面的...
场景和模拟数据：
excel里有一份产品详情表，包含SKU编码、SKU名称、颜色和尺码，属性是按列排放的，但是部分SKU的属性是空的。这次的任务是把这份excel数据读到Python里面，并且要把属性转成按行排列，excel里面的原始数据形式和最终要转化成的dataframe形式如图所示。

处理过程：
每一步的处理可以参考注释理解。
import pandas as pd
# 读取excel文件，index_col=0，实现把第1列SKU设置为索引，后面就不用再写代码行：df = df.set_index(['SKU'])
# stack将数据的列旋转为行(自动剔除null)，延申一下：unstack将数据的行旋转为列
df = df.stack()
# stack列转行后出现层次化索引
# reset_index还原索引，把层次化索引变为默认的整型索引，层次化索引被还原成普通列
df = df.reset_index()
# 设置数据列名
df.columns = ['SKU', 'ATTRIBUTE', 'ATTRIBUTE_VALUE']
print('\n最终dataframe形式：', '\n',  df)
结果显示如下：
stack列转行后数据形式：
SKU
A    NAME       aa
COLOR     red
SIZE        L
B    NAME       bb
COLOR    blue
dtype: object

最终dataframe形式：
SKU ATTRIBUTE ATTRIBUTE_VALUE
0    A      NAME              aa
1    A     COLOR             red
2    A      SIZE               L
3    B      NAME              bb
4    B     COLOR            blue
5    B      SIZE               M
6    C      NAME              cc
7    C     COLOR           green
8    C      SIZE              XL
9    D      NAME              dd
10   D     COLOR           black
11   D      SIZE               S
12   E     COLOR             red
13   E      SIZE               L
14   F      NAME              ff
15   F      SIZE               M
16   G      NAME              gg
17   G     COLOR           green
如果你有更好的方法和技巧，请让我也了解学习下。
展开全文
• fifo和ddr3数据重排是啥原理呀，数据进入后怎么进行重排
• 修改状态进行数据重排后，根据数据唯一Entry确定数据在第几行，从而算出在第几页，由此进行上一篇文章【angularjs】表格选中行定位用到的行定位相关代码即可 相关代码： var lineNum = ""; ...
情景说明：
在grid中，数据按照状态开始-暂停-结束顺序排序，点击变更按钮后，状态发生改变，数据进行重排，如何定位到最初选中修改的数据
思路：
修改状态进行数据重排后，根据数据唯一Entry确定数据在第几行，从而算出在第几页，由此进行上一篇文章【angularjs】表格选中行定位用到的行定位相关代码即可
相关代码：
    var lineNum = "";
var getData = function (currentPage) {
//调用方法查询表格数据
if (response.data.length == 0) {
\$scope.myData = [];
}
else {
mydefaultData = response.data.rows;
lineNum = "";
focusLocation();
if (lineNum != "") {
currentPage = Math.ceil(lineNum / self.gridOptions.paginationPageSize)
}
if (typeof (currentPage) == "undefined" || currentPage == "") {
currentPage = 1;
}
getPage(currentPage, self.gridOptions.paginationPageSize);
}
}

function focusLocation() {
if (typeof (selectRows[0]) == "undefined" || selectRows[0] == "") {
}
else {
lineNum = mydefaultData.findIndex((value, index, arr) => {
return value.Entry == selectRows[0].Entry;
});
}
};

说明：
调用更改状态方法后，再次调用getData()方法
展开全文
• 实验要求设计一个队列结果来解决车厢重排问题。车厢重排问题为：一列货车共有n节车厢，每个车厢都有自己的编号，编号范围从1~n。给定任意次序的车厢，通过转轨站将车厢编号按顺序重新排成1~n。转轨站共有k个缓冲轨，...
• 上面例子中我们指定了两列first和last，这两列是不变的，height和weight被变换成为行数据。 举个例子： In [41]: cheese = pd.DataFrame({'first': ['John', 'Mary'], ....: 'last': ['Doe', 'Bo'], ....: 'height'...
• mysql数据库 id重排云服务器(Elastic Compute Service，简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备，让您像...
• 数据的排序及重排序问题(数据变化需要重排)大家都知道在集合中TreeSet会去除重复数据并对数据进行排序(默认升序,可以使用Comparable接口的CompareTo 方法改变排序方式),但是当排好的数据发生变化时,它能否重新排序呢...
• 数据结构，火车车厢重排问题，实验报告，有代码，实验结果截图，实验感想
• 二进制重排优化虚拟内存非法内存访问内存浪费ASLR二进制重排二进制重排原理如何判断缺页中断耗时使用Instruments工具设置Xcode调试参数如何查看自己工程的符号顺序如何改变二进制符号的加载顺序获取启动期间加载的...
• 数据进行重排和重构，直接输入原始数据，进行打乱，以及用正态或者均匀分布替换
• 串口采集数据重排后怎么从序列中得到所有插值计算得到的采样点？还需要对插值得到的采样点单独求取采样值么？
• 不同采样点的采集量的时序在数据重排后不同步不一致怎么处理？怎么将不同采样点的数据做时序上的同步？
• // 停靠着最小编号车厢的缓冲轨道 bool railroad(int inputOrder[], int theNumberOfCars, int theNumberOfTracks) {// 从初始顺序开始重排车厢 // 如果重排成，返回 true，否则返回 false numberOfCars = ...
• #include<iostream> #include using namespace std; void Reset(int in[], int n);//把车厢重新排布 void Output(int& minC, int& minB, stack<int> buffer[], int n); // 此函数把车厢从缓冲铁轨送至出轨处，同时...
• CPU运行时优化(高速缓存、指令重排等) Java、大数据开发学习要点（持续更新中…） 文章目录CPU运行时优化(高速缓存、指令重排等)一、CPU高速缓存与缓存一致性协议1.1 高速缓存1.2 缓存一致性协议(MESI)二、CPU运行...
• 实验内容：火车车厢重排问题。 实验说明： 转轨站示意图如下： 火车车厢重排过程如下： 3. 模块分析 1.void Output(int& minH,int& minQ,LinkQueue<int>H[],int k,int n) 将车厢从缓冲轨出轨 2...
• 一个Vue mixin，可转换重排。 更改组件数据后，您注册的所有CSS属性都将转换为其新值。 常见的用例有： 过渡height: auto和width: auto 。 平滑地重新放置元素。 请注意，该库与Vue的内置组件没有重叠。 目录 ...
• list列表数据重排 使用random包中的shuffle()方法进行重排 注意：shuffle()是不能直接访问的，需要导入 random 模块，然后通过 random 静态对象调用该方法。 import random random.shuffle (lst) 参数 - lst...
• 运货的各节车厢在入轨上时是随机的顺序，火车头在出轨处，现在要将各节车厢按编号从大到小挂到车头上，其中在入轨与出轨之间有k条缓冲铁轨，将通过缓冲铁轨完成本次的火车车厢的重排。 功能要求：能够应用面向对象...
• #资源达人分享计划#
• 题目 Given a singly linked list L: L 0→L 1→…→L n-1→L n, reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→… You must do this in-place without altering the nodes’ values. ...
• 给定一个单链表 L：L0→L1→…→Ln-1→Ln ， 将其重新排列后变为： L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。 示例 1: 给定链表 1->...
• c++ 车厢重排算法 数据结构的作业 VS2005，VS2010都能打开
• 重排链表给定一个单链表 L1→L2→...→Ln-1→Ln，请编写程序将链表重新排列为 Ln→L1→Ln-1→L2→...。例如：给定L为1→2→3→4→5→6，则输出应该为6→1→5→2→4→3。输入格式：每个输入包含1个测试用例。每个...
• 主要讨论了一种适用于分布和共享内存的循环级的数据分布策略。该方法支持由数据重排而引起的通信。

...