.values[startIndex:endIndex + 1, :]
时间: 2023-05-17 10:05:44 浏览: 41
这是一个Python中的切片操作,用于获取一个二维数组中某一行的一部分数据。其中,startIndex表示起始行的下标,endIndex表示结束行的下标(不包括该行),1表示步长,即每隔一行取一次数据。而":"则表示取该行的所有列。
相关问题
c# 我有一个复数的对象集合,里面存放在["a","b","c","d","e","f',"g"],我想要通过一个字符串cde获取到我数组里的["c","d","e"]的元素,且我字符串的顺序一定要和我数组元素的顺序完全一致,然后替换数组里的元素值为[1,2,3],怎么实现
您可以使用 `List.IndexOf` 方法和 `List.GetRange` 方法来实现此功能。以下是一个示例代码:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string> { "a", "b", "c", "d", "e", "f", "g" };
string str = "cde";
List<int> newValues = new List<int> { 1, 2, 3 };
int startIndex = list.IndexOf(str[0].ToString());
int endIndex = list.IndexOf(str[str.Length - 1].ToString()) + 1;
if (startIndex >= 0 && endIndex > startIndex)
{
List<string> range = list.GetRange(startIndex, endIndex - startIndex);
if (string.Concat(range) == str)
{
for (int i = 0; i < range.Count; i++)
{
list[startIndex + i] = newValues[i].ToString();
}
}
}
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
```
这个代码会先找到目标字符串在集合中的起始索引和结束索引,然后使用 `List.GetRange` 方法获取到目标字符串对应的集合片段。如果该片段与目标字符串完全一致,就使用 `for` 循环将其替换为新值。最后,代码会遍历整个集合并输出每个元素。
用.NET语言计算股票技术指标KDJ的代码
以下是使用.NET语言计算股票技术指标KDJ的代码:
```
public static void CalculateKDJ(List<double> closePrices, List<double> highPrices, List<double> lowPrices, int n, int m1, int m2, out List<double> kValues, out List<double> dValues, out List<double> jValues)
{
kValues = new List<double>();
dValues = new List<double>();
jValues = new List<double>();
double[] rsvValues = new double[closePrices.Count];
for (int i = 0; i < closePrices.Count; i++)
{
double c = closePrices[i];
double h = highPrices[i];
double l = lowPrices[i];
double rsv = (c - l) / (h - l) * 100;
if (double.IsNaN(rsv))
{
rsv = 0;
}
rsvValues[i] = rsv;
}
double[] kSmaValues = new double[closePrices.Count];
double[] dSmaValues = new double[closePrices.Count];
for (int i = 0; i < closePrices.Count; i++)
{
double kSma = 0;
double dSma = 0;
if (i == 0)
{
kSma = 50;
dSma = 50;
}
else
{
int startIndex = Math.Max(0, i - n + 1);
int endIndex = i;
double[] rsvValuesSubset = new double[endIndex - startIndex + 1];
Array.Copy(rsvValues, startIndex, rsvValuesSubset, 0, endIndex - startIndex + 1);
double maxRsv = rsvValuesSubset.Max();
double minRsv = rsvValuesSubset.Min();
double kPrev = kSmaValues[i - 1];
double dPrev = dSmaValues[i - 1];
kSma = (kPrev * (m1 - 1) / m1) + (maxRsv * 1 / m1);
dSma = (dPrev * (m2 - 1) / m2) + (kSma * 1 / m2);
}
kSmaValues[i] = kSma;
dSmaValues[i] = dSma;
}
for (int i = 0; i < closePrices.Count; i++)
{
double k = kSmaValues[i];
double d = dSmaValues[i];
double j = 3 * k - 2 * d;
kValues.Add(k);
dValues.Add(d);
jValues.Add(j);
}
}
```
其中,closePrices、highPrices和lowPrices分别代表收盘价、最高价和最低价的列表,n、m1和m2分别代表KDJ指标中的参数,kValues、dValues和jValues分别代表计算出的K、D、J值的列表。