Numpy

Numpy简单入门

创建一个数组

一维数组

import numpy as np
a = np.array([0,1,2,3,4])  #[0,1,2,3,4]
b = np.arange(5)	#[0,1,2,3,4]
c = np.linspace(0,2*np.pi,5)   #[ 0.          1.57079633  3.14159265  4.71238898  6.28318531]
#使用
a[3]  #3

二维数组

import numpy as np
a = np.array([[1,2,3,4,5],
			  [6,7,8,9,10],
			  [11,12,13,14,15]])
#使用:
a[2,4]   #15

多维数组切片

import numpy as np

a= np.array([[11,12,13,14,15],
             [16,17,18,19,20],
             [21,22,23,24,25],
             [26,27,28,29,30],
             [31,32,33,34,35]]) 

print(a[2,4])  #[25]

# 多维数组切片
# MD slicing
#第0行,列:1~4(不包括4)
print(a[0,1:4])   #[12,13,14]

print(a[1:4,0])  #[16,21,26]

# 行和列的步长都为2
print(a[::2,::2])  #[[11 13 15]
                   # [21 23 25]
                   # [31 33 35]]
                   
print(a[:,1]) #[12,17,22,27,32]

数组属性

import numpy as np

a= np.array([[11,12,13,14,15],
             [16,17,18,19,20],
             [21,22,23,24,25],
             [26,27,28,29,30],
             [31,32,33,34,35]]) 

print(type(a))   #<class 'numpy.ndarray'>
print(a.dtype)      #int32
print(a.size)       #25
print(a.shape)      #(5, 5)
print(a.itemsize)   #4
print(a.ndim)       #2
print(a.nbytes)     #100

# itemsize属性:每隔项占用的字节数
# ndim属性: 数组的维数
# nbyte属性: 数组中的所有数据消耗掉的字节数

使用数组

基本操作符

#basic operators 

import numpy as np

a= np.arange(25)
a = a.reshape((5,5))

b = np.array([10,62,1,14,2,56,79,2,1,45,4,92,5,55,63,43,35,6,53,24,56,3,56,44,78])
b = b.reshape((5,5))

print(a)

"""基本运算符:`+`、`-`、`*`、`/`、`<`、`>`"""

print("a+b=\n",a + b)
print("a-b=\n",a - b)
print("a*b=\n",a*b)
print("a/b=\n",a/b)
print("a**2=\n",a**2)
# a<b和a>b是判断两个数的大小,输出为True or Flase
print("a<b=\n",a<b)
print("a>b=\n",a>b)

"""其他运算符:dot、sum、min、max、cumsum"""

print("a.dot(b)=\n",a.dot(b))
print("sum()=",a.sum())
print("min()=",a.min())
print("max()=",a.max())
print("cumsum()=",a.cumsum())
# cumsum()函数:
# 数组a为多长,就返回一个多长的数组
# 返回新数组的第一个元素:a数组的第一个元素
# 返回新数组的第二个元素:a数组的前两个元素值相加
# 返回新数组的第三个元素:a数组的前三个元素值相加
# ......
# 返回新数组的最后一个元素:a数组的全部元素值相加

花式索引

#Fancy indexing
import numpy as np

a = np.arange(0,100,10)
indices = [1,5,-1]
b = a[indices]
print(a)        #[ 0 10 20 30 40 50 60 70 80 90]
print(b)        #[10 50 90]

布尔屏蔽

#Boolean masking
# 允许根据我们指定的条件检索数组中的元素
import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(0,2*np.pi,50)
print(2*np.pi)
print(a)
b = np.sin(a)
plt.plot(a,b)
mask = b>=0
plt.plot(a[mask],b[mask],'bo')
mask = (b>=0) & (a<= np.pi/2)
plt.plot(a[mask],b[mask],'go')
plt.show()

索引缺省

#Incomplete Indexing
import numpy as np
a = np.arange(0,100,10)
b = a[:5]
c = a[a>=50]

print(b)  #[ 0 10 20 30 40]
print(c)    #[50 60 70 80 90]

Where 函数

# Where
#根据条件返回数组中的值
import numpy as np

a = np.arange(0, 100, 10)
b = np.where(a < 50) 
c = np.where(a >= 50)[0]
print(b)    # (array([0, 1, 2, 3, 4], dtype=int64),)
print(c)    # [5 6 7 8 9]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值