GVKun编程网logo

如何为切片的 3D numpy 数组的所有元素添加一个值?(numpy数组切片赋值)

19

如果您想了解如何为切片的3Dnumpy数组的所有元素添加一个值?的相关知识,那么本文是一篇不可错过的文章,我们将对numpy数组切片赋值进行全面详尽的解释,并且为您提供关于c#–将数组的所有元素添加到

如果您想了解如何为切片的 3D numpy 数组的所有元素添加一个值?的相关知识,那么本文是一篇不可错过的文章,我们将对numpy数组切片赋值进行全面详尽的解释,并且为您提供关于c# – 将数组的所有元素添加到除一个之外的datagridview行、C++程序:将一个数组的所有元素复制到另一个数组中、java 如何判断一个数组是否包含令一个数组的所有元素、javascript – 如何从另一个数组的所有元素中过滤数组的有价值的信息。

本文目录一览:

如何为切片的 3D numpy 数组的所有元素添加一个值?(numpy数组切片赋值)

如何为切片的 3D numpy 数组的所有元素添加一个值?(numpy数组切片赋值)

检查 Numpy Dtypes。您的变量 bvalue 是 Unicode String 类型,变量 imgb 是 unsigned int 类型。无法添加。

,

您可以向 numpy.uint8 添加整数。如果您将 bvalue 转换为 int(并假设 bvalue 是可以转换为 int 的东西),那么您的代码应该可以工作。

lab[:,:,0] += int(50.0)

上面的行用于使图像变亮。请注意,由于通道是 uint8,如果超过 255,它将溢出。如果超过该值,它将返回并继续 (255 + 11 = 10)。

c# – 将数组的所有元素添加到除一个之外的datagridview行

c# – 将数组的所有元素添加到除一个之外的datagridview行

我正在逐行读取文本文件,并将其插入到数组中.

然后,我有一个名为custIndex的列表,它包含某些索引,我正在测试的items数组的索引,看它们是否是有效的代码. (例如,custIndex [0] = 7,所以我检查项目[7-1]中的值,看看它是否有效,在我这里的两个词典中).然后,如果代码无效,我将行(items数组)添加到dataGridView1.

问题是,dataGridView1中的一些列是组合框列,因此用户可以选择正确的值.当我尝试添加items数组时,我得到一个异常:“DataGridView中发生以下异常:System.ArgumentException:DataGridViewComboBoxCell值无效.”

我知道组合框已正确添加正确的数据源,因为如果我只是将items数组中的一些项添加到dataGridView1,就像items [0]一样,组合框显示正常,并且没有抛出异常.我想问题是当我尝试将items数组中的错误值添加到dataGridView1行时.

我不知道如何处理这件事.有没有办法可以添加除该值之外的所有项目?或者我可以从项目中添加值并将其显示在组合框单元格中,以及填充的下拉项目吗?

if(choosenFile.Contains("Cust"))
{
    var lines = File.ReadAllLines(path+"\\"+ choosenFile);

    foreach (string line in lines)
    {
        errorCounter = 0;
        string[] items = line.Split('\t').ToArray();

        for (int i = 0; i <custIndex.Count; i++)
        {
            int index = custIndex[i];
            /*Get the state and country codes from the files using the correct indices*/
            Globals.Code = items[index - 1].toupper();

            if (!CountryList.ContainsKey(Globals.Code) && !StateList.ContainsKey(Globals.Code))
            {
                errorCounter++;

                dataGridView1.Rows.Add(items);
            }
        }//inner for

        if (errorCounter == 0)
            dataGridView2.Rows.Add(items);

    }//inner for each

}//if file is a customer file

解决方法

假设您的文本文件包含:

澳大利亚PNG,印度非洲
奥地利巴厘岛Indonisia
法国英格兰,苏格兰,爱尔兰格陵兰
德国巴哈马夏威夷
希腊哥伦比亚,墨西哥,秘鲁阿根廷
新西兰俄罗斯美国

并且假设您的DataGridView设置为3列,第2列是组合框.

当您填充网格并错误地填充组合框列时,您将收到错误.

解决它的方法是“显式处理/声明”DataError事件,更重要的是正确填充组合框列.

private void dataGridView1_DataError(object sender,DataGridViewDataErrorEventArgs e)
{
    //Cancelling doesn't make a difference,specifying the event avoids the prompt 
    e.Cancel = true;
}

private void dataGridView2_DataError(object sender,DataGridViewDataErrorEventArgs e)
{
    e.Cancel = true;
}

因此,想象第二列包含一个国家下拉列表和第一列和第一列.第3列包含文本字段.

对于第1列和第3列,它们只是字符串,因此我创建了一个表示每一行的类:

public class CountryData
{
    public string FirstCountry { get; set; }
    public string ThirdCountry { get; set; }
}

对于第二列“Countries”组合框单元格,我创建了一个单独的类,因为我将它绑定到第二列数据源.

public class MultiCountryData
{
    public string[] SeceondCountryOption { get; set; }
}

使用组合框列等填充网格,如下所示:https://stackoverflow.com/a/1292847/495455不是一个好习惯.您希望将业务逻辑与演示文稿分开,以获得更加封装,多态和抽象的方法,从而简化单元测试和维护.因此DataBinding.

这是代码:

namespace BusLogic
{
public class ProcessFiles
{

internal List<CountryData> CountryDataList = new List<CountryData>();
internal List<MultiCountryData> MultiCountryDataList = new List<MultiCountryData>();

internal void foo(string path,string choosenFile)
{
    var custIndex = new List<int>();
    //if (choosenFile.Contains("Cust"))
    //{
        var lines = File.ReadAllLines(path + "\\" + choosenFile);
        foreach (string line in lines)
        {
            int errorCounter = 0;
            string[] items = line.Split('\t');

            //Put all your logic back here...

            if (errorCounter == 0)
            {
                var countryData = new CountryData()
                                      {
                                          FirstCountry = items[0],ThirdCountry = items[2]
                                      };
                countryDataList.Add(countryData);

                multiCountryDataList.Add( new MultiCountryData() { SeceondCountryOption = items[1].Split(',')});

            }
        //}
      }

}
}

在您的演示文稿项目中,这里是按钮单击代码:

imports BusLogic;
 private void button1_Click(object sender,EventArgs e)
 {
     var pf = new ProcessFiles();
     pf.foo(@"C:\temp","countries.txt"); 
     dataGridView2.AutoGenerateColumns = false;
     dataGridView2.DataSource = pf.CountryDataList;
     multiCountryDataBindingSource.DataSource = pf.MultiCountryDataList;      
 }

我设置dataGridView2.AutoGenerateColumns = false;因为我在设计时添加了3列;第一个文本列,第二个组合框列和第三个文本列.

绑定第二个组合框列的技巧是BindingSource.在设计时>右键单击DataGridView>选择编辑列>选择第二列>选择DataSource>单击“添加项目数据源”>选择对象>然后勾选multiCountry类并单击Finish.

还将第1列的DataPropertyName设置为FirstCountry,将第3列的DataPropertyName设置为ThirdCountry,因此在绑定数据时,映射会自动完成.

最后,不要忘记将BindingSource的DataMember属性设置为multiCountry类的SeceondCountryOption成员.

这是代码演示http://temp-share.com/show/HKdPSzU1A

C++程序:将一个数组的所有元素复制到另一个数组中

C++程序:将一个数组的所有元素复制到另一个数组中

c++程序:将一个数组的所有元素复制到另一个数组中

数组数据结构用于在连续的内存中存储同质数据 位置以顺序方式访问它们。数组是线性数据结构,因此 数组的基本操作可以在线性时间内执行。在本文中,我们将了解如何 在 C++ 中将一个数组中的元素复制到另一个新数组。

由于数组元素是同类的,因此新数组将具有相同的类型。创建后 另一个相同大小的数组,我们只需将第一个数组中的元素复制到第二个数组 一个。让我们看看算法和 C++ 实现,以便更好地理解。

算法

  • 读取数组 A 及其大小 n 作为输入
  • 创建大小与 A 相同的空数组 B,即 n
  • 对于 i 的范围从 0 到 n-1,执行
    • B[ i ] := A[ i ]​​i>
  • 结束

示例

#include <iostream>
using namespace std;
void display( int arr[], int n ){
   for ( int i = 0; i < n; i++ ) {
      cout << arr[i] << ", ";
   }
}
void solve( int arr[], int newArr[], int n ){
   int i;
   for ( i = 0; i < n; i++ ) {
      newArr[ i ] = arr [ i ];
   }
}
int main(){
   int arr[] = {9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84 };
   int n = sizeof( arr ) / sizeof( arr[0] );
   cout << "Given array: ";
   display(arr, n);
   int newArray[n] = {0};
   solve( arr, newArray, n );
   cout << "\nArray After copying: ";
   display(newArray, n);
}
登录后复制

输出

Given array: 9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84, 
Array After copying: 9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84,
登录后复制

结论

从一个数组复制元素是基于数组的编程中最简单的任务之一。 我们创建一个新数组,其大小至少等于给定数组的大小。然后我们遍历 遍历给定数组的每个索引,然后将给定数组中的元素复制到新数组 大批。由于不需要多次遍历数组,因此操作可以是 在线性时间内执行,因此渐近上限为 O(n)。对于空间的利用也是如此 新数组需要相同数量的空间。复制需要 O(n) 空间量 元素添加到新数组。

以上就是C++程序:将一个数组的所有元素复制到另一个数组中的详细内容,更多请关注php中文网其它相关文章!

java 如何判断一个数组是否包含令一个数组的所有元素

java 如何判断一个数组是否包含令一个数组的所有元素

String[] a={"1","2"}

String[] b={"1","2","3"}

如何判断一个数组是否包含令一个数组的所有元素

我最初想到的是合并两个数组判断是否有重复值 但后来又想到a数组或b数组自身有重复元素的话 这么判断来的结果就不准确

那么 请问还有什么其他更好判断方法呢?

javascript – 如何从另一个数组的所有元素中过滤数组

javascript – 如何从另一个数组的所有元素中过滤数组

我想了解从另一个元素的所有元素中过滤数组的最佳方法.我试过过滤器功能,但它没有告诉我如何给它我想要删除的值.就像是:

var array = [1,2,3,4];
var anotherone = [2,4];
var filteredArray = array.filter(myCallback);
// filteredArray should Now be [1,3]


function myCallBack(){
    return element ! filteredArray; 
    //which clearly can't work since we don't have the reference <,< 
}

如果过滤功能没用,你会如何实现?
编辑:我检查了可能的重复问题,它可能对那些容易理解JavaScript的人有用.检查得很好的答案让事情变得简单.

解决方法

您可以使用filter()函数的this参数来避免将过滤器数组存储在全局变量中.

var filtered = [1,4].filter(
    function(e) {
      return this.indexOf(e) < 0;
    },[2,4]
);
console.log(filtered);

今天关于如何为切片的 3D numpy 数组的所有元素添加一个值?numpy数组切片赋值的讲解已经结束,谢谢您的阅读,如果想了解更多关于c# – 将数组的所有元素添加到除一个之外的datagridview行、C++程序:将一个数组的所有元素复制到另一个数组中、java 如何判断一个数组是否包含令一个数组的所有元素、javascript – 如何从另一个数组的所有元素中过滤数组的相关知识,请在本站搜索。

本文标签: