- numpy中的数组
- Numpy中的数据类型
- numpy中的方法
是通用数组处理程序包。它提供了一个高性能的多维数组对象, 以及用于处理这些数组的工具。它是使用Python进行科学计算的基本软件包。
除了其明显的科学用途外, Numpy还可以用作通用数据的高效多维容器。
numpy中的数组Numpy中的Array是所有相同类型的元素(通常是数字)表, 由正整数元组索引。在Numpy中, 数组的维数称为数组的秩。给出每个方向的数组大小的整数元组称为数组的形状。 Numpy中的数组类称为ndarray。 Numpy数组中的元素可以使用方括号访问, 并且可以使用嵌套的Python列表进行初始化。
创建一个Numpy数组
Numpy中的数组可以通过多种方式创建, 具有不同数量的Rank, 用于定义数组的大小。也可以使用各种数据类型(例如列表, 元组等)来创建数组。结果数组的类型是根据序列中元素的类型推导出来的。
注意:
创建数组时可以显式定义数组的类型。
# Python program for
# Creation of Arrays
import numpy as np# Creating a rank 1 Array
arr = np.array([1, 2, 3])
print("Array with Rank 1: \n", arr)# Creating a rank 2 Array
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Array with Rank 2: \n", arr)# Creating an array from tuple
arr = np.array((1, 3, 2))
print("\nArray created using "
"passed tuple:\n", arr)
输出如下:
Array with Rank 1:
[1 2 3]
Array with Rank 2:
[[1 2 3]
[4 5 6]]Array created using passed tuple:
[1 3 2]
访问数组索引
在numpy数组中, 可以通过多种方式来建立索引或访问数组索引。要打印数组范围, 请进行切片。数组的切片是在新数组中定义一个范围, 该范围用于从原始数组中打印一系列元素。由于切片的数组包含原始数组的一系列元素, 因此借助切片的数组修改内容将修改原始数组的内容。
# Python program to demonstrate
# indexing in numpy array
import numpy as np# Initial Array
arr = np.array([[-1, 2, 0, 4], [4, -0.5, 6, 0], [2.6, 0, 7, 8], [3, -7, 4, 2.0]])
print("Initial Array: ")
print(arr)# Printing a range of Array
# with the use of slicing method
sliced_arr = arr[:2, ::2]
print ("Array with first 2 rows and"
" alternate columns(0 and 2):\n", sliced_arr)# Printing elements at
# specific Indices
Index_arr = arr[[1, 1, 0, 3], [3, 2, 1, 0]]
print ("\nElements at indices (1, 3), "
"(1, 2), (0, 1), (3, 0):\n", Index_arr)
输出如下:
Initial Array:
[[-1.2.0.4. ]
[ 4.-0.56.0. ]
[ 2.60.7.8. ]
[ 3.-7.4.2. ]]
Array with first 2 rows and alternate columns(0 and 2):
[[-1.0.]
[ 4.6.]]Elements at indices (1, 3), (1, 2), (0, 1), (3, 0):
[ 0. 54.2.3.]
基本阵列操作
在numpy中, 数组允许在特定数组或数组组合上执行的多种操作。这些运算包括一些基本的数学运算以及一元和二进制运算。
# Python program to demonstrate
# basic operations on single array
import numpy as np# Defining Array 1
a = np.array([[1, 2], [3, 4]])# Defining Array 2
b = np.array([[4, 3], [2, 1]])# Adding 1 to every element
print ("Adding 1 to every element:", a + 1)# Subtracting 2 from each element
print ("\nSubtracting 2 from each element:", b - 2)# sum of array elements
# Performing Unary operations
print ("\nSum of all array "
"elements: ", a.sum())# Adding two arrays
# Performing Binary operations
print ("\nArray sum:\n", a + b)
输出如下:
Adding 1 to every element:
[[2 3]
[4 5]]Subtracting 2 from each element:
[[ 21]
[ 0 -1]]Sum of all array elements:10Array sum:
[[5 5]
[5 5]]
有关Numpy数组的更多信息
- Numpy中的基本阵列操作
- Numpy中的高级阵列操作
- NumPy Python中的基本切片和高级索引
构造数据类型对象
在Numpy中, 除非需要特定的数据类型, 否则无需定义数组的数据类型。 Numpy尝试猜测构造函数中未预定义的数组的数据类型。
# Python Program to create
# a data type object
import numpy as np# Integer datatype
# guessed by Numpy
x = np.array([1, 2])
print("Integer Datatype: ")
print(x.dtype)# Float datatype
# guessed by Numpy
x = np.array([1.0, 2.0])
print("\nFloat Datatype: ")
print(x.dtype)# Forced Datatype
x = np.array([1, 2], dtype = np.int64)
print("\nForcing a Datatype: ")
print(x.dtype)
输出如下:
Integer Datatype:
int64Float Datatype:
float64Forcing a Datatype:
int64
DataType数组上的数学运算
在Numpy数组中, 基本数学运算是在数组上逐元素执行的。这些操作既可以用作运算符重载, 也可以用作功能。 Numpy中提供了许多有用的函数来对数组执行计算, 例如
和
:用于添加数组元素,
?
:用于元素的转置等。
# Python Program to create
# a data type object
import numpy as np# First Array
arr1 = np.array([[4, 7], [2, 6]], dtype = np.float64)# Second Array
arr2 = np.array([[3, 6], [2, 8]], dtype = np.float64) # Addition of two Arrays
Sum = np.add(arr1, arr2)
print("Addition of Two Arrays: ")
print(Sum)# Addition of all Array elements
# using predefined sum method
Sum1 = np.sum(arr1)
print("\nAddition of Array elements: ")
print(Sum1)# Square root of Array
Sqrt = np.sqrt(arr1)
print("\nSquare root of Array1 elements: ")
print(Sqrt)# Transpose of Array
# using In-built function 'T'
Trans_arr = arr1.T
print("\nTranspose of Array: ")
print(Trans_arr)
输出如下:
Addition of Two Arrays:
[[ 7. 13.]
[ 4. 14.]]Addition of Array elements:
19.0Square root of Array1 elements:
[[2.2.64575131]
[1.41421356 2.44948974]]Transpose of Array:
[[4. 2.]
[7. 6.]]
有关Numpy数据类型的更多信息
- NumPy中的数据类型Object(dtype)
all() |
arange() |
dot() |
any() |
apply_along_axis() |
apply_over_axes() |
argmin() |
argmax() |
nanargmin() |
nanargmax() |
amax() |
amin() |
isneginf() |
rint() |
insert() |
isposinf() |
flip() |
fliplr() |
flipud() |
triu() |
tril() |
tri() |
fix() |
empty_like() |
zeros() |
zeros_like() |
ones() |
ones_like() |
full_like() |
diag() |
diagflat() |
diag_indices() |
asmatrix() |
bmat() |
eye() |
roll() |
identity() |
arange() |
place() |
extract() |
compress() |
rot90() |
tile() |
reshape() |
ravel() |
isinf() |
isrealobj() |
isscalar() |
isneginf() |
isposinf() |
iscomplex() |
isnan() |
iscomplexobj() |
isreal() |
isfinite() |
isfortran() |
exp() |
exp2() |
fix() |
hypot() |
absolute() |
ceil() |
floor() |
degrees() |
radians() |
npv() |
fv() |
pv() |
power() |
float_power() |
log() |
log1() |
log2() |
log10() |
dot() |
vdot() |
trunc() |
divide() |
floor_divide() |
true_divide() |
random.rand() |
random.randn() |
ndarray.flat() |
expm1() |
bincount() |
rint() |
equal() |
not_equal() |
less() |
less_equal() |
greater() |
Greater_equal() |
prod() |
square() |
cbrt() |
logical_or() |
logical_and() |
logical_not() |
logical_xor() |
array_equal() |
array_equiv() |
sin() |
cos() |
tan() |
sinh() |
cosh() |
tanh() |
arcsin() |
arccos() |
arctan() |
arctan2() |
Numpy程序
- Python |检查列表是否为空
- Python |从列表中获取唯一值
- Python |将列表中的所有数字相乘(3种不同方式)
- 在Python中以单行转置矩阵
- 在Python中使用Numpy在单行中将两个矩阵相乘
- Python程序使用numpy打印nxn的棋盘图案
- Python中的图形绘制套装1, 套装2, 套装3
- Python中的矩阵处理
- NumPy Python中的基本切片和高级索引
- Flatten()和Ravel()之间的区别
- python中Numpy.random中的rand与normal
推荐阅读
- C++如何使用std::search(代码示例)
- JavaScript中的函数介绍和用法详细指南
- 如何TCP和UDP之间的区别()
- 如何实现SSTF磁盘调度算法程序()
- jQuery如何使用jTippy工具提示插件()
- 高盛面试经验分享(经验丰富)
- 电脑公司win7旗舰版笔记本系统32位最新系统推荐
- 雨林木风win7企业版iso64位装机版最新系统推荐
- 戴尔笔记本W7 64位安装盘最新系统推荐