Numpy基础(数组和矢量计算)01

NumPy(Numerical Python的简称)是Python数值计算最重要 的基础包。⼤多数提供科学计算的包都是⽤NumPy的数组作为 构建基础。

ndarray

生成一个数组

这是一个一维数组,包含5个随机数

import numpy as np
data=np.random.randn(5)
data
-----------------------
array([-0.05005535, -0.33868845, -1.54246915,  1.35100212,  0.51923146])

随机生成一个二维数组(3行5列)

import numpy as np
data=np.random.randn(3,5)
data
-----------------
array([[-0.41155768,  0.28310154, -1.63553837, -0.52905269,  0.47231969],
       [ 1.49229778,  0.42470805, -0.98589754,  0.0900258 ,  0.47585042],
       [-0.71018406,  0.02346366, -2.53173337,  0.61281454,  0.31399838]])

数组类型

import numpy as np
data=np.random.randn(3,5)
data.shape
------------------------------
(3, 5)
import numpy as np
data=np.random.randn(3,5)
data.dtype
------------------------------
dtype('float64')

自定义数组

data1=[1,3,5,7,9]
arr1=np.array(data1)
arr1
------------------------------
array([1, 3, 5, 7, 9])
data1=[[1,2,3],[4,5,6],[7,8,9]]
arr1=np.array(data1)
arr1
-----------------------------
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

数组的运算

data1=[1,3,5,7,9]
arr1=np.array(data1)
data2=[2,4,6,8,10]
arr2=np.array(data2)
arr1+arr2
-----------------------------
array([ 3,  7, 11, 15, 19])
data1=[1,3,5,7,9]
arr1=np.array(data1)
data2=[2,4,6,8,10]
arr2=np.array(data2)
(arr1+arr2)*10
----------------------------
array([ 30,  70, 110, 150, 190])
data1=[1,3,5,7,9]
arr1=np.array(data1)
data2=[2,4,6,8,10]
arr2=np.array(data2)
arr1*arr2
---------------------------
array([ 2, 12, 30, 56, 90])

新建特殊数组

值全为0的数组

arr1=np.zeros(10)
arr1
---------------------------
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

0~n的值

arr1=np.arange(10)
arr1
--------------------------
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

数据类型

定义数据类型

arr1=np.array([1,5,9],dtype=np.float64)
arr1.dtype
--------------------------
dtype('float64')
arr1=np.array([1,5,9],dtype=np.int32)
arr1.dtype
-----------------------
dtype('int32')

转换数据类型

arr1=np.array([1,5,9,20,55])
arr1.dtype
-----------------------
dtype('int32')
arr1=np.array([1,5,9,20,55])
float_arr1=arr1.astype(dtype=np.float64)
float_arr1.dtype
-----------------------
dtype('float64')

如果将浮点数化为整数,小数部分会被截取删除

arr1=np.array([1.22,5.35,9.58,20.15,55.689])
int_arr1=arr1.astype(dtype=np.int64)
int_arr1
-----------------------
array([ 1,  5,  9, 20, 55], dtype=int64)

索引和切片

arr=np.arange(10)
arr
-----------------------
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr=np.arange(10)
arr[8]
-----------------------
8
arr=np.arange(10)
arr[2:5]
-----------------------
array([2, 3, 4])
arr=np.arange(10)
arr[2]=5564
arr[4]=8888
arr
----------------------
array([   0,    1, 5564,    3, 8888,    5,    6,    7,    8,    9])

在二维数组中

arr=np.array([[1,2,3],[9,7,6],[3,4,5]],dtype=int)
print(arr[0,0])
print(arr[0,1])
print(arr[0,2])
print(arr[1,0])
print(arr[1,1])
print(arr[1,2])
----------------------
1
2
3
9
7
6

通过循环进行索引

arr=np.array([[1,2,3],[9,7,6],[3,4,5]],dtype=int)
for i in range(3):
    print(arr[i][i])
----------------------
1
7
5

其他索引方法

arr=np.arange(25).reshape(5,5)
arr
----------------------
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]])
arr=np.arange(25).reshape(5,5)
arr[[0,1,2,3,4],[4,3,2,1,0]]
----------------------
array([ 4,  8, 12, 16, 20])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据攻城小狮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值