numpy学习笔记 全面|目录|书籍精华


建议阅读相关书籍进行系统学习,此篇文章仅做个人总结之用。

  1. 《利用Python进行数据分析》——韦斯·麦金尼
  2. 莫凡的教程

多维数组对象

生成数组

  1. 生成数组:np.array(),dtype 默认为float64
    转换数据类型:arr = np.array, arr.astype(np.int32),这一部操作是将float64转化为int32,且这个函数默认生成新数组
  2. 生成零数组:np.zeros()
  3. 生成空数组:np.empty()
  4. range 函数的数组版本:np.arange(15).reshape(3,5)
  5. 生成一个线段:a = np.linspace(1,10,20).reshape(3,4),生成一个20段1-10的数列(拆成20个数字)
  6. 生成2行4列的属于(0,1)随机数组:np.random.random((2,4))

数组的运算

数组之间每个元素的运算,这里的每个数组尺寸应该相同,不同数组涉及到广播的知识,这里暂不做解释。

  1. 最大值/最小值/求和np.sum(a, axis=1),np.min(a),np.max(a)
    axis=1代表列,axis=0代表行
  2. 逐个比较两个数组的大小
x = np.random.randn(8)
y = np.random.randn(8)
print(np.maximum(x, y))
  1. 计算小数部分和整数部分
remainder,whole_part = np.modf(arr)
  1. 乘法:python的平方是用**表示
    如果用矩阵的运算应该是np.dot(a,b)或者a.dot(b),就不会是各个元素之间的乘法了。
    具体的函数见书P207页

基础索引和切片

与列表相似,前闭后开,
与Python中列表的不同

  1. 传入数值给切片,python是不允许的,numpy是允许的
arr = np.arange(10)
arr[5:9] = 12
print(arr)
##################################
a = range(10)
a[5:9] = 12
print(a)

上面的运算结果:

[ 0  1  2  3  4 12 12 12 12  9]

下面的运算结果

TypeError: 'range' object does not support item assignment

list 是不能全部赋值的

2.浅拷贝和深拷贝: python中赋值是直接产生一个新的对象,但是numpy赋值不是,只是一个原数列的视图。改变复制过的,原数组也会被改变
例子:

a = list(range(10))
c = a[5:8]
c[1] = 12
print(a)

b = np.arange(10)
d = b[5:8]
d[1] = 12
print(b)

运行结果

[0, 1, 2, 3, 4, 5, 6, 7, 8
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值