numpy常见问题以及解决方案

1.python中numpy数值上限的问题
我通过a=np.arange(1300)生成一维数组,将数组a**3三次方后,发现1291之后的三次方数都成负数了,是因为越界了
2.子文件夹引用numpy出错
 子文件夹下有自己建的numpy.py文件
 看最后一行的错误,找不到libatlas.so.3gf. 将其所在文件夹引入/etc/ld.so.conf,缺啥补啥
$ sudo gedit /etc/ld.so.conf
写入/usr/lib/atlas-base
$ sudo ldconfig
3.横向量和列向量是可以任意加减的。
numpy数组下标是可以越界的!如果越界了,会自动检测,只返回到结尾的数据。
4.numpy的deep copy问题:
        问题描述:在列表中,'b=a[:]'和'b=a.copy()'是具有相同效果,都可以用来deep.copy,但是在numpy中。数组两者效果却不相同
        解决方案:numpy关于copy有三种情况,完全不复制,浅复制(shadow copy),深复制(deep copy),'b=a'和 'b=a[:]'的差别就在于后者会创造新的对象。而前者不会,两者方式都会导致a和b数据的相互影响,要想a数据改动不影响到b,可以使用深复制
 5.numpy导入csv文件失败:
        问题描述:想导入一个csv文件,运行出错:could not convert string to float
        解决方案:'header=0'跳过表头那一行,或者使用pandas操作,pandas对文件的操作功能更加强大,'skiprows=[0,2]'跳过第二行或者第三行
6.numpy.sum计算错误,数值溢出:
        问题描述:简单的求和计算,和直接用内置函数计算结果不一样
        解决方案:numpy底层使用c优化,默认dtype是int32,数值过大就会溢出,将默认dtype改成float就可以了

猜你喜欢

转载自blog.csdn.net/miantian180/article/details/79389020