GVKun编程网logo

numpy中的ndarray和array有什么区别?(numpy array ndarray区别)

16

针对numpy中的ndarray和array有什么区别?和numpyarrayndarray区别这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Array.fill和for循环创建Array

针对numpy中的ndarray和array有什么区别?numpy array ndarray区别这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Array.fill和for循环创建Array有什么区别、ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?、ArrayList.clear()和ArrayList.removeAll()有什么区别?、Array和ArrayList区别等相关知识,希望可以帮助到你。

本文目录一览:

numpy中的ndarray和array有什么区别?(numpy array ndarray区别)

numpy中的ndarray和array有什么区别?(numpy array ndarray区别)

ndarrayarrayNumpy有什么区别?我在哪里可以找到numpy源代码中的实现?

Array.fill和for循环创建Array有什么区别

Array.fill和for循环创建Array有什么区别

我正在使用React.js创建一个地牢爬虫游戏,并且正在使用Array.fill(0)来初始化棋盘。但是当我在2d数组内设置元素时,它将整个Array(列)设置为,'player'而不是单个元素。我有另一个createBoard()功能,注释掉,可以正常工作。那么,为什么会发生这种情况?如何正确使用Array.fill?

这是我的董事会组件:

import React,{Component} from 'react';
import Cell from './Cell';

class Board extends Component {
  constructor(props) {
    super(props);
    const dim = 10;
    let board = this.createBoard(dim,dim);
    this.state = {
      board: board,};
  }

  createBoard = (row,col) => {
    return Array(row).fill(Array(col).fill(0));
  }

  // createBoard = (rows,cols) => {
  //   let board = [];
  //   for (let i = 0; i < rows; i++) {
  //     let row = [];
  //     for (let j = 0; j < cols; j++) {
  //       row.push(0);
  //     }
  //     board.push(row);
  //   }
  //   console.log(board);
  //   return board;
  // }

  movePlayer = () => {

  }

  componentDidMount() {
    this.setPiece(this.props.player);
  }

  setPiece = (loc) => {
    let brd = this.state.board;
    const row = loc[0];
    const col = loc[1];
    console.log('row: '+row+' col: '+col+' ==='+brd[row][col]);
    brd[row][col] = 'player';
    console.log('setPiece: ',brd);
    this.setState({board: brd});
  }

  renderCell = (cell) => {
    switch(cell) {
      case 0:
        return 'floor';
      case 1:
        return 'wall';
      case 'player':
        return 'player';
      default:
        return 'floor';
    }
  }

  render() {
    return (
      <div className='board'>
      {this.state.board.map((row,i) => {
        return row.map((cell,j) => {
          return (
            <Cell
              key={[i,j]}
              loc={[i,j]}
              type={this.renderCell(cell)}
            />
          );
        })
      })}
      </div>
    );
  }
}

export default Board;

ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?

ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?

ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?

ArrayList.clear()和ArrayList.removeAll()有什么区别?

ArrayList.clear()和ArrayList.removeAll()有什么区别?

假设arraylist定义为ArrayList<String> arraylistarraylist.removeAll(arraylist)等于arraylist.clear()

如果是这样,我clear()是否可以认为该方法更有效地清空数组列表?

使用arraylist.removeAll(arraylist)代替有什么需要注意的地方arraylist.clear()吗?

Array和ArrayList区别

Array和ArrayList区别

下面列出了Array和ArrayList的不同点:
Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
Array大小是固定的,ArrayList的大小是动态变化的。
ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。

 

ArrayList可以算是Array的加强版,(对array有所取舍的加强)。

另附分类比较:

存储内容比较:

  • Array数组可以包含基本类型和对象类型,
  • ArrayList却只能包含对象类型。

但是需要注意的是:Array数组在存放的时候一定是同种类型的元素。ArrayList就不一定了,因为ArrayList可以存储Object。

空间大小比较:

  • 它的空间大小是固定的,空间不够时也不能再次申请,所以需要事前确定合适的空间大小。
  • ArrayList的空间是动态增长的,如果空间不够,它会创建一个空间比原空间大约0.5倍的新数组,然后将所有元素复制到新数组中,接着抛弃旧数组。而且,每次添加新的元素的时候都会检查内部数组的空间是否足够。(比较麻烦的地方)。

  附上arraylist扩充机制:newCapacity=oldCapacity+(oldCapacity>>1)(注: >>1:右移1位,相当于除以2,例如10>>1 得到的就是5)但由于源码里(不再分析,这里简要略过)传过来的minCapcatiy的值是size+1,能够实现grow方法调用就肯定是(size+1)>elementData.length的情况,所以size就是初始最大容量或上一次扩容后达到的最大容量,所以才会进行扩容。因此,扩容后的大小应该是原来的1.5倍+1

方法上的比较: 
ArrayList作为Array的增强版,当然是在方法上比Array更多样化,比如添加全部addAll()、删除全部removeAll()、返回迭代器iterator()等。

适用场景: 
如果想要保存一些在整个程序运行期间都会存在而且不变的数据,我们可以将它们放进一个全局数组里,但是如果我们单纯只是想要以数组的形式保存数据,而不对数据进行增加等操作,只是方便我们进行查找的话,那么,我们就选择ArrayList。而且还有一个地方是必须知道的,就是如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用ArrayList就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦

关于numpy中的ndarray和array有什么区别?numpy array ndarray区别的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Array.fill和for循环创建Array有什么区别、ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?、ArrayList.clear()和ArrayList.removeAll()有什么区别?、Array和ArrayList区别的相关信息,请在本站寻找。

本文标签: