我正在通过A Tour of Go学习Go.其中一个练习要求我创建一个包含dy行和dx列的2D切片uint8.我目前采用的方法是:
a:= make([][]uint8, dy) // initialize a slice of dy slices
for i:=0;i<dy;i++ {
a[i] = make([]uint8, dx) // initialize a slice of dx unit8 in each of dy slices
}
Run Code Online (Sandbox Code Playgroud)
我认为迭代每个切片来初始化它太冗长了.如果切片具有更多尺寸,则代码将变得难以处理.是否有一种简洁的方法来初始化Go中的2D(或n维)切片?
在 CI 中可以像这样初始化堆栈上的数组:
SOME_DATA_TYPE* x = (SOME_DATA_TYPE[5]) {v1, v2, v3, v4, v5};
Run Code Online (Sandbox Code Playgroud)
是否有类似的单行方法将值分配给malloc()堆上的-ed 数组?
SOME_DATA_TYPE* y = malloc(sizeof(SOME_DATA_TYPE)*5);
// what comes here?
Run Code Online (Sandbox Code Playgroud)
或者我是否必须遍历数组并单独分配值?
我有一个NumPy数组:
arr = [[1, 2],
[3, 4]]
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含arr高达幂的幂的新数组order:
# arr_new = [arr^0, arr^1, arr^2, arr^3,...arr^order]
arr_new = [[1, 1, 1, 2, 1, 4, 1, 8],
[1, 1, 3, 4, 9, 16, 27, 64]]
Run Code Online (Sandbox Code Playgroud)
我目前的方法使用for循环:
# Pre-allocate an array for powers
arr = np.array([[1, 2],[3,4]])
order = 3
rows, cols = arr.shape
arr_new = np.zeros((rows, (order+1) * cols))
# Iterate over each exponent
for i in range(order + 1):
arr_new[:, (i * cols) : (i …Run Code Online (Sandbox Code Playgroud) 我有一个uint32_t元素数组,每个元素存储一个非拉丁 Unicode 字符的代码点。如何在控制台上打印它们或将它们作为 UTF-8 编码字符存储在文件中?我知道它们可能无法在控制台上正确呈现,但如果我在兼容的编辑器中打开它们,它们应该可以正常显示。
我曾尝试使用wprintf(L"%lc", UINT32_T_VARIABLE),fwprintf(FILE_STREAM, L"%lc", UINT32_T_VARIABLE)但无济于事。
我想在我提供的任何分隔符组合上拆分字符串.例如,如果字符串是:
s = 'This, I think,., ???? MAKES , some sense '
Run Code Online (Sandbox Code Playgroud)
而分隔符是\.,,和\s.但是我想捕获除空白之外的所有分隔符\s.输出应该是:
['This', ',', 'I', 'think', ',.,', '????', 'MAKES', ',', 'some', 'sense']
Run Code Online (Sandbox Code Playgroud)
到目前为止我的解决方案是使用re模块:
pattern = '([\.,\s]+)'
re.split(pattern, s)
Run Code Online (Sandbox Code Playgroud)
但是,这也捕获了空白.我尝试过使用其他模式,[(\.)(,)\s]+但它们不起作用.
编辑:@PadraicCunningham做了一个精明的观察.对于像这样的分隔符Some text ,. , some more text,我只想删除前导空格和尾随空格,. ,而不是空格.
我有多个 python 项目,每个项目都有自己的虚拟环境。另外我有一个全局 python 环境。我想在虚拟/全局环境之间共享相同的包文件,而不需要多次复制它们(如果可能)。
Environment Packages
----------------------------------------
GLOBAL: A B C D
VENV_1: A B C E
VENV_2: C D F
Run Code Online (Sandbox Code Playgroud)
所以,在这个例子中:
C.GLOBAL并且VENV_1还将共享A和 的文件B。GLOBAL共享.VENV_2DE和F不是全局安装的,因此虚拟环境将单独安装这些软件包。我尝试使用virtualenv该--system-site-packages标志,但这只会使所有全局包在虚拟环境中可访问。因此,当我使用它导出环境时,pip freeze它将包含不必要的包。
如何使用选定的软件包创建虚拟环境,以便在全局安装某个软件包时,不会在本地创建该软件包的新文件副本?这可以使用conda或virtualenv或任何其他工具吗?
我正在使用 Windows 10 和 python 3.6。
假设我有两个文件,f1.txt并且f2.txt.f1.txt需要进行一些修正,之后需要同时处理这两个文件.如何将f1.txt修正输出与f2.txt数据合并到管道?
这是一个例子:
Get-Content f1.txt |
% {
$_ #SOME OPERATION
} # How do I merge this output into the next pipeline?
Get-Content f2.txt |
% {
#COMBINED OPERATIONS on f1.txt output and f2.txt
} > output.txt
Run Code Online (Sandbox Code Playgroud)
我知道我可以将第一个操作保存到一个临时文件中并再次读取它以进行组合操作:
...
} > temp.txt
Get-Content temp.txt, f2.txt |
...
Run Code Online (Sandbox Code Playgroud)
但有没有办法在不创建缓冲区文件的情况下完成它?
假设我有 3 个熊猫DatetimeIndex对象:
import pandas as pd
idx1 = pd.date_range('2019-01-01 00:00:00', '2019-01-01 01:00:00', freq='5T')
idx2 = pd.date_range('2019-01-01 02:00:00', '2019-01-01 03:00:00', freq='5T')
idx3 = pd.date_range('2019-01-02 00:00:00', '2019-01-02 01:00:00', freq='5T')
Run Code Online (Sandbox Code Playgroud)
如何将它们组合成一个索引?
我做的迂回方法是首先将它们转换为series,然后使用pandas.concat函数将它们组合起来,然后将系列转换回DatetimeIndex:
# This works, but requires type conversions to and from
# intermediate series objects:
combined = pd.concat([idx1.to_series(), idx2.to_series(), idx3.to_series()])
idx = pd.DatetimeIndex(combined.values)
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法来组合索引pandas?
我想为接受任何 google protocol buffer 对象的函数中的参数添加类型提示。
def do_something(protobuf_obj: WHAT_IS_HERE):
# protobuf_obj can be any protocol buffer instance
pass
Run Code Online (Sandbox Code Playgroud)
我应该从图书馆放什么课google.protobuf?
free()只需要指针值来释放已分配的内存.这意味着C知道分配的内存块有多大.那么为什么没有一些内置函数来查找指针数组的大小?
我知道惯例是跟踪数组大小,但鉴于已经有一些本地发生的内存管理,为什么我们不利用它来size()为数组提供方便的功能?
python ×5
c ×3
arrays ×2
datetime ×1
file-io ×1
go ×1
heap-memory ×1
numpy ×1
pandas ×1
pipeline ×1
powershell ×1
regex ×1
sizeof ×1
slice ×1
type-hinting ×1
unicode ×1
utf-8 ×1
virtualenv ×1