Numpy的ndarray

1)ndarray是N维数组对象,其中所有的元素必须是相同类型,可以对整块数据进行一些数学运算

      

import numpy as np
a = [1, 2, 3]
b = 3*a
c = np.array(a)*3
print(b)
print(c)
print(c+c)


[1, 2, 3, 1, 2, 3, 1, 2, 3]
[3 6 9]
[ 6 12 18]


2)arange是python内置函数range的数组版

 print(np.arange(15)) # [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]是数组,不是list


3) 数组切片与列表切片

 

a = [1, 2, 3]
b = a[:2]
b[0] = 10
print(a)

c = np.array(a)
c1 = c[:2]
c1[0] = 10
print(c)

a[:2] = [10, 2]
print(a)

[1, 2, 3]
[10  2  3]
[10, 2, 3]


通过上面的例子,可以知道ndarray切片的是视图,视图上的任何修改都会直接反映到源数组

如果想得到的不是视图,就必须进行显式操作,c1 = c[:2].copy()


4)数组索引

    a[0][2] 与a[0, 2]是等价的


5)ndarray的astype方法显式地转换其dtype

  调用astype无论如何都会创建一个新的数组,即使新dtyoe跟老dtype相同也如此

import numpy as np
a = np.array([3.7, -1.2, 2.6])
print(a)
a.astype(np.int)
print(a)
b = a.astype(np.int)
print(b)

[ 3.7 -1.2  2.6]
[ 3.7 -1.2  2.6]
[ 3 -1  2]


6)数组转置

import numpy as np
arr = np.arange(15).reshape((3,5))
print(arr)
b = arr.T
print(b)
print(np.dot(arr,arr.T))#求矩阵内积

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]


[[ 0  5 10]
 [ 1  6 11]
 [ 2  7 12]
 [ 3  8 13]
 [ 4  9 14]]


[[ 30  80 130]
 [ 80 255 430]
 [130 430 730]]


7)通用函数

#快速元素级函数
import numpy as np
arr = np.arange(10)
print(np.sqrt(arr))#一元函数,求根

x = np.random.randn(8)
y = np.random.randn(8)
print(x)
print(y)
print(np.maximum(x,y))#二元函数,求对应的较大值


[ 0.          1.          1.41421356  1.73205081  2.          2.23606798
  2.44948974  2.64575131  2.82842712  3.        ]
[-0.30646481  0.19637636 -0.24780102 -1.56935591 -0.52543323 -1.5038108
  0.80716262 -1.16165569]
[-1.07482357  1.31523092  1.46381034 -0.82602134 -0.13589412  0.81393135
  0.94287863 -0.49948303]
[-0.30646481  1.31523092  1.46381034 -0.82602134 -0.13589412  0.81393135
  0.94287863 -0.49948303]





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值