Python numpy中的对象传递问题
来源:互联网 发布:zepto.js swipeleft 编辑:程序博客网 时间:2024/05/29 18:18
Python numpy在slide的过程中也会有对象传递,也就是地址传递,并不是直接copy过去,这个问题困扰我一天了,详情见下例,c数组中的第一个元素随着第二个元素的增加而改变了.
解决方案是用c.append(np.array(a[1]))
,将a[1]
用np.array()
方法重新申明为numpy数组,因为np.array()
默认copy矩阵中的元素再创建一个新的numpy.ndarray对象,但是与之很相近的np.asarray()
则不copy,这两个方法在使用的时候要注意了,关于np.asarray()
和np.array()
的区别,详情见asarray vs array
# 声明a为3*3的矩阵 >>> import numpy as np>>> a=np.zeros((3,3))>>> aarray([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])# 声明b为3*1的矩阵,并赋值给a的第一行 >>> b=np.ones((1,3))>>> a[1]=b>>> aarray([[ 0., 0., 0.], [ 1., 1., 1.], [ 0., 0., 0.]])# 声明c为空矩阵,把a的第一行append到c >>> c=[]>>> c.append(a[1])>>> c[array([ 1., 1., 1.])]# 改变b,同时赋值给a的第一行 >>> b=np.array([1,2,3])>>> a[1]=b>>> aarray([[ 0., 0., 0.], [ 1., 2., 3.], [ 0., 0., 0.]])# 再次把a的第一行append到c中,发现c的第一个元素也跟着改变了>>> c.append(a[1])>>> c[array([ 1., 2., 3.]), array([ 1., 2., 3.])]
2 0
- Python numpy中的对象传递问题
- 【Python】numpy 中的 copy 问题详解
- <Python> Numpy中的矩阵乘法问题
- numpy中的ndarray对象
- numpy中的ndarray对象
- Python中的NumPy函数库
- Python中的numpy包
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的numpy
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的包numpy
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python 中的numpy 库
- 应用统计学与R语言实现学习笔记(三)——描述性统计
- Hadoop入门基础教程 Hadoop之单机模式搭建
- Java面试题集(86-115)
- 使用win10自带IIS发布ASP.NET网站
- RTTI
- Python numpy中的对象传递问题
- Hadoop入门基础教程 Hadoop之伪分布式环境搭建
- python2.7之学习scrapy
- Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)
- 存储过程调试
- Accept-Encoding学习
- #411 Div.2 D. Minimum number of steps
- 各种内部排序算法的比较和选择
- Filter的入门