标签: slice

在JavaScript中解释[] .slice.call?

我偶然发现了将DOM NodeList转换为常规数组的简洁快捷方式,但我必须承认,我并不完全理解它是如何工作的:

[].slice.call(document.querySelectorAll('a'), 0)
Run Code Online (Sandbox Code Playgroud)

所以它从一个空数组开始[],然后slice用于将结果转换call为一个新数组是啊?

我不明白的是call.如何document.querySelectorAll('a')从NodeList转换为常规数组?

javascript arrays call slice

185
推荐指数
7
解决办法
7万
查看次数

正确初始化空切片的方法

要声明具有非固定大小的空切片,最好是:

mySlice1 := make([]int, 0)
Run Code Online (Sandbox Code Playgroud)

要么:

mySlice2 := []int{}
Run Code Online (Sandbox Code Playgroud)

只是想知道哪一个是正确的方法.

arrays go slice

184
推荐指数
4
解决办法
17万
查看次数

在Java中获取数组的一部分而不在堆上创建新数组

我正在寻找一种返回数组片段的Java方法.一个例子是获取包含字节数组的第4和第5个字节的字节数组.我不想在堆内存中创建一个新的字节数组来做到这一点.现在我有以下代码:

doSomethingWithTwoBytes(byte[] twoByteArray);

void someMethod(byte[] bigArray)
{
      byte[] x = {bigArray[4], bigArray[5]};
      doSomethingWithTwoBytes(x);
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以做到doSomething(bigArray.getSubArray(4, 2))4是偏移量,2是长度,例如.

java arrays slice

180
推荐指数
11
解决办法
21万
查看次数

包含切片的方法

是否有类似slice.contains(object)Go中的方法而不必搜索切片中的每个元素?

go slice

174
推荐指数
10
解决办法
21万
查看次数

如何在Bash中对数组进行切片

查看bash(1)手册页中的"Array"部分,我没有找到切片数组的方法.

所以我想出了这个过于复杂的功能:

#!/bin/bash

# @brief: slice a bash array
# @arg1:  output-name
# @arg2:  input-name
# @args:  seq args
# ----------------------------------------------
function slice() {
   local output=$1
   local input=$2
   shift 2
   local indexes=$(seq $*)

   local -i i
   local tmp=$(for i in $indexes 
                 do echo "$(eval echo \"\${$input[$i]}\")" 
               done)

   local IFS=$'\n'
   eval $output="( \$tmp )"
}
Run Code Online (Sandbox Code Playgroud)

像这样使用:

$ A=( foo bar "a  b c" 42 )
$ slice B A 1 2
$ echo "${B[0]}"  # bar
$ echo "${B[1]}"  # a …
Run Code Online (Sandbox Code Playgroud)

arrays bash slice

171
推荐指数
2
解决办法
10万
查看次数

ValueError:使用序列设置数组元素

这个Python代码:

import numpy as p

def firstfunction():
    UnFilteredDuringExSummaryOfMeansArray = []
    MeanOutputHeader=['TestID','ConditionName','FilterType','RRMean','HRMean',
                      'dZdtMaxVoltageMean','BZMean','ZXMean','LVETMean','Z0Mean',
                      'StrokeVolumeMean','CardiacOutputMean','VelocityIndexMean']
    dataMatrix = BeatByBeatMatrixOfMatrices[column]
    roughTrimmedMatrix = p.array(dataMatrix[1:,1:17])


    trimmedMatrix = p.array(roughTrimmedMatrix,dtype=p.float64)  #ERROR THROWN HERE


    myMeans = p.mean(trimmedMatrix,axis=0,dtype=p.float64)
    conditionMeansArray = [TestID,testCondition,'UnfilteredBefore',myMeans[3], myMeans[4], 
                           myMeans[6], myMeans[9], myMeans[10], myMeans[11], myMeans[12],
                           myMeans[13], myMeans[14], myMeans[15]]
    UnFilteredDuringExSummaryOfMeansArray.append(conditionMeansArray)
    secondfunction(UnFilteredDuringExSummaryOfMeansArray)
    return

def secondfunction(UnFilteredDuringExSummaryOfMeansArray):
    RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
    return

firstfunction()
Run Code Online (Sandbox Code Playgroud)

抛出此错误消息:

File "mypath\mypythonscript.py", line 3484, in secondfunction
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何解决上面破坏的代码中的问题,以便它停止抛出错误消息?


编辑: 我做了一个打印命令来获取矩阵的内容,这是打印出来的:

UnFilteredDuringExSummaryOfMeansArray是:

[['TestID', 'ConditionName', 'FilterType', 'RRMean', 'HRMean', 'dZdtMaxVoltageMean', 'BZMean', 'ZXMean', …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy slice

167
推荐指数
5
解决办法
73万
查看次数

切片NumPy 2d数组,或者如何从nxn数组(n> m)中提取mxm子矩阵?

我想切片NumPy nxn数组.我想提取该数组的m行和列的任意选择(即行数/列数没有任何模式),使其成为一个新的mxm数组.对于这个例子,让我们说数组是4x4,我想从中提取一个2x2数组.

这是我们的数组:

from numpy import *
x = range(16)
x = reshape(x,(4,4))

print x
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
Run Code Online (Sandbox Code Playgroud)

要删除的行和列是相同的.最简单的情况是当我想要提取一个位于开头或结尾的2x2子矩阵时,即:

In [33]: x[0:2,0:2]
Out[33]: 
array([[0, 1],
       [4, 5]])

In [34]: x[2:,2:]
Out[34]: 
array([[10, 11],
       [14, 15]])
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要删除另一行/列的混合物怎么办?如果我需要删除第一行和第三行/行,从而提取子矩阵[[5,7],[13,15]]怎么办?行/行可以有任何组合.我读到某个地方,我只需要使用行和列的索引数组/列表索引我的数组,但这似乎不起作用:

In [35]: x[[1,3],[1,3]]
Out[35]: array([ 5, 15])
Run Code Online (Sandbox Code Playgroud)

我发现了一种方法,即:

    In [61]: x[[1,3]][:,[1,3]]
Out[61]: 
array([[ 5,  7],
       [13, 15]])
Run Code Online (Sandbox Code Playgroud)

第一个问题是它几乎不可读,尽管我可以忍受它.如果有人有更好的解决方案,我当然希望听到它.

另一件事是我在一个论坛上读到,使用数组索引数组强制NumPy制作所需数组的副本,因此当处理大型数组时,这可能会成为一个问题.为什么这样/这个机制如何运作?

python numpy slice

165
推荐指数
5
解决办法
19万
查看次数

切片的最后一个元素

什么是__CODE__用于提取的最后一个元素的方式__CODE__

var slice []int

slice = append(slice, 2)
slice = append(slice, 7)

slice[len(slice)-1:][0] // Retrieves the last element
Run Code Online (Sandbox Code Playgroud)

上面的解决方案有效,但似乎很尴尬.

go slice

152
推荐指数
3
解决办法
11万
查看次数

你如何在Python中使用省略号切片语法?

这出现在 Python的隐藏功能中,但我看不到可以解释该功能如何工作的好文档或示例.

python numpy subclass ellipsis slice

146
推荐指数
4
解决办法
4万
查看次数

你如何清除Go中的切片?

在Go中清除切片的适当方法是什么?

以下是我在go论坛中发现的内容:

// test.go
package main

import (
    "fmt"
)

func main() {
    letters := []string{"a", "b", "c", "d"}
    fmt.Println(cap(letters))
    fmt.Println(len(letters))
    // clear the slice
    letters = letters[:0]
    fmt.Println(cap(letters))
    fmt.Println(len(letters))
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?

为了澄清,缓冲区被清除,因此可以重复使用.

一个例子是bytes包中的Buffer.Truncate函数.

请注意,Reset只调用Truncate(0).所以看来在这种情况下,第70行会评估:b.buf = b.buf [0:0]

http://golang.org/src/pkg/bytes/buffer.go

// Truncate discards all but the first n unread bytes from the buffer.
60  // It panics if n is negative or greater than the length of the buffer.
61  func (b *Buffer) Truncate(n int) {
62 …
Run Code Online (Sandbox Code Playgroud)

arrays go slice

116
推荐指数
4
解决办法
9万
查看次数

标签 统计

slice ×10

arrays ×6

go ×4

numpy ×3

python ×3

bash ×1

call ×1

ellipsis ×1

java ×1

javascript ×1

subclass ×1