首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python数据分析(中英对照)·Tuples 元组

Python数据分析(中英对照)·Tuples 元组

作者头像
数媒派
发布于 2022-12-01 07:13:56
发布于 2022-12-01 07:13:56
4160
举报
文章被收录于专栏:产品优化产品优化

1.2.3: Tuples 元组

元组是不可变的序列,通常用于存储异构数据。 Tuples are immutable sequences typically used to store heterogeneous data. 查看元组的最佳方式是将其作为一个由多个不同部分组成的单个对象。 The best way to view tuples is as a single object that consists of several different parts. 元组在Python编程中有很多用途。 Tuples have many uses in Python programming. 一个特别重要的用例是当您希望从Python函数返回多个对象时。 One especially important use case is when you want to return more than one object from your Python function. 在这种情况下,您通常会将所有这些对象包装在一个元组对象中,然后返回该元组。 In that case, you would typically wrap all of those objects within a single tuple object, and then return that tuple. 现在让我们看一下使用元组可以执行的一些基本操作。 Let’s now take a look at some of the basic operations that we can do using tuples. 我首先要构造一个元组。 I’m first going to construct a tuple. 我将把它称为大写字母T,让我们在元组中输入一些数字。 I’m going to just call it capital T. And let’s just put in a few numbers in my tuple. 比如说1,3,5,7。 Let’s say 1, 3, 5, and 7. 同样,元组是序列的一种类型。 Again, tuples are a type of sequence. 因此,如果我想知道元组中有多少个对象,我可以使用len函数。 So if I wanted to know how many objects I have in my tuple,I can use the len function. 我还可以连接元组。 I can also concatenate tuples. 所以我可以做一些像T+。 So I can do something like T plus. 我需要一个新的元组。 I need a new tuple here. 比如说9号和11号。 Let’s say 9 and 11. 在本例中,Python向我返回一个新的元组,其中两个元组被放在一起。 And in this case, Python returns a new tuple to me where the two tuples have been put together. 因为元组是序列,所以访问元组中不同对象的方式取决于它们的位置。 Because tuples are sequences, the way you access different objects within a tuple is by their position. 因此,如果我想访问元组中的第二个对象,我会键入大写字母T、方括号和1。 So if I wanted to access the second object in my tuple,I would type capital T, square bracket, and 1. 记住,使用位置1将得到元组中的第二个对象,因为Python中的索引从0开始。 And remember, using position 1 is going to give me the second object in the tuple, because indices in Python start at 0. 您需要熟悉的另一个操作是如何打包和解包元组。 Another operation that you need to be familiar with is how to pack and unpack tuples. 假设我有两个数字,两个变量,x和y。 Imagine I have two numbers– two variables, x and y. 让我们快速创建它们。 Let’s just quickly create them. 假设x等于这个。 Let’s say x is equal to this. y等于这个。 y is equal to this. 想象一下,如果我想构造一个元组对象。 Imagine now if I wanted to construct a tuple object. 我们可以把这两个数字x和y看作坐标。 We could think of these two numbers x and y as coordinates. 所以我可以这样做。 So I could do something like this. 我可以将坐标定义为一个元组,它由两个对象x和y组成。 I could define my coordinate as a tuple, which consists of two objects, x and y. 如果我现在问Python,坐标对象的类型是什么,Python会告诉我这是一个元组。 If I now ask Python, what is the type of my coordinate object,Python will tell me that’s a tuple. 此操作称为打包元组或元组打包。 This operation is called packing a tuple, or tuple packing. 另一个相关操作是如何解包元组。 Another related operation is how you unpack a tuple. 我们的坐标包含两个数字。 Our coordinate contains two numbers. 我们的坐标对象是一个元组。 Our coordinate object is a tuple. 下面是如何解包这个元组。 Here is how you can unpack this tuple. 假设我想把它分成两个数字– Let’s say I would like to unpack that into two numbers– 比如说c1和c2,可能是坐标1和坐标2的缩写。 say c1 and c2, perhaps short for coordinate 1 and coordinate 2. 我可以把c2和c2写成一个元组。 I can just write c2 and c2 as a tuple. 然后我可以把坐标赋给那个元组。 And then I can assign coordinate into that tuple. 如果我现在看c1和c2的值,我将观察以下内容。 If I now look at the values of c1 and c2, I will observe the following. c1包含该元组中的第一个对象。 c1 contains the first object in that tuple. 其中c2包含元组的第二个对象。 Where c2 contains the second object of the tuple. 我们还可以在FOR循环中使用元组,这非常方便。 We can also use tuples in FOR loops, which is extremely handy. 假设我创建了多个坐标。 Let’s say I’ve created multiple coordinates. 在本例中,我的对象坐标是一个列表,它由元组组成,其中每个元组由两个数字组成。 So in this case, my object coordinates is a list which consists of tuples where each tuple consists of two numbers. 如果我想在FOR循环中循环这些对象呢? What if I wanted to loop over these objects in say a FOR loop? 然后我可以做以下事情。 Then I can do the following. 我可以称这些坐标对为x和y。 I can call these coordinate pairs x and y. 让我把它们用括号括起来,用坐标表示。 Let me enclose these in parentheses here, in coordinates. 我可以让Python打印x和y的值。 And I can ask Python to print the value of x and y. 这就是这里发生的事情。 So this is what’s happening here. 坐标是元组列表。 Coordinates is a list of tuples. 在FOR循环中,我要遍历那个容器,那个坐标序列,一次一个。 In my FOR loop I am going over that container, that sequence of coordinates, one at a time. 这里重点关注的关键部分是如何从元组列表中解包元组。 The key part to focus here is how I unpack the tuples from my list of tuples. 所以语法是坐标中的4x逗号y。 So the syntax is 4x comma y in coordinates. 换句话说,我一次一个地解压坐标列表中的元组。 In other words, I’m unpacking the tuples within the coordinates list one at a time. 关于在循环中解包元组还有一件事。 One more thing about unpacking tuples in a loop. 我不一定需要围绕x和y的括号。 I don’t necessarily need the parentheses surrounding x and y. 所以我也可以在坐标中输入x逗号y。 So I can also just type for x comma y in coordinates. 然后我就有了同样的打印功能。 And then I just have the same print function. 这也行得通。 This also works. 然而,有时在元组周围加上括号会使您更清楚地知道您正在处理一个元组对象。 However, sometimes having the extra parentheses around the tuple will make it clearer to you that you are dealing with a tuple object. 理解如何构造和处理包含多个对象的元组相对容易。 It’s relatively easy to understand how to construct and deal with tuples that contain multiple objects. 但是如果元组中只有一个对象呢? But what if you just have one object within your tuple? 让我们先试试这个。 Let’s experiment with that first. 让我们从一个元组开始,其中有两个对象,比如2和3。 Let’s start with a tuple where we have two objects, say 2 and 3. 我们知道这是我们构造的元组。 We know this is a tuple from the way we constructed. 我们还可以要求Python向我们返回对象的类型,我们现在碰巧称之为c。 We can also ask Python to return to us the type of the object, which we now happen to call c. 如果我想构造一个只包含一个对象的新元组,您可能会猜测我们可以使用以下结构。 If I wanted to construct a new tuple with just one object in it,you might guess that we could just use the following structure. 我们只需要c型等于括号。 We could just type c is equal to parentheses. 我们把那个号码放在里面。 And we put the one number in there. 但是,如果我们现在问Python,这个对象的类型是什么? However, if we ask Python now, what is the type of this object? 它实际上不是一个元组。 It’s not actually a tuple. 如果我们通过键入类型括号c来检查这个对象的类型,Python告诉我们c实际上是一个整数。 If we check the type of this object by typing type parentheses c,Python is telling us that c is actually an integer. 但这不是我们想要的。 But this is not what we wanted. 我们想要一个只包含一个对象的元组对象。 We wanted to have a tuple object that contains just one object. 这就是语法有点违反直觉的地方。 This is where the syntax is a little bit counterintuitive. 要构造只有一个对象的元组,我们必须使用以下语法。 To construct a tuple with just one object,we have to use the following syntax. 我们先说c等于。 We start by saying c is equal to. 我们把元组放在括号里。 We put our tuple parentheses. 我们把它放在我们的2号。 We put it in our number 2. 我们加上逗号。 And we add the comma. 当我们现在问Python什么类型的对象是c时,我们知道这是一个元组。 When we now ask Python what type of object is c,we know that this is a tuple. 最后,如果需要,还可以省略括号。 Finally, if you want, you can also omit the parentheses. 这也行得通。 This also works. 然而,有时在元组周围加上括号会使您更清楚地知道您正在处理一个元组对象。 However, sometimes having the extra parentheses around the tuple will make it clearer to you that you are dealing with a tuple object. 理解如何构造和处理包含多个对象的元组相对容易。 It’s relatively easy to understand how to construct and deal with tuples that contain multiple objects. 但是如果元组中只有一个对象呢? But what if you just have one object within your tuple? 让我们先试试这个。 Let’s experiment with that first. 让我们从一个元组开始,其中有两个对象,比如2和3。 Let’s start with a tuple where we have two objects, say 2 and 3. 我们知道这是我们构造的元组。 We know this is a tuple from the way we constructed. 我们还可以要求Python向我们返回对象的类型,我们现在碰巧称之为c。 We can also ask Python to return to us the type of the object, which we now happen to call c. 如果我想构造一个只包含一个对象的新元组,您可能会猜测我们可以使用以下结构。 If I wanted to construct a new tuple with just one object in it,you might guess that we could just use the following structure. 我们只需要c型等于括号。 We could just type c is equal to parentheses. 我们把那个号码放在里面。 And we put the one number in there. 但是,如果我们现在问Python,这个对象的类型是什么? However, if we ask Python now, what is the type of this object? 它实际上不是一个元组。 It’s not actually a tuple. 如果我们通过键入类型括号c来检查这个对象的类型,Python告诉我们c实际上是一个整数。 If we check the type of this object by typing type parentheses c,Python is telling us that c is actually an integer. 但这不是我们想要的。 But this is not what we wanted. 我们想要一个只包含一个对象的元组对象。 We wanted to have a tuple object that contains just one object. 这就是语法有点违反直觉的地方。 This is where the syntax is a little bit counterintuitive. 要构造只有一个对象的元组,我们必须使用以下语法。 To construct a tuple with just one object,we have to use the following syntax. 我们先说c等于。 We start by saying c is equal to. 我们把元组放在括号里。 We put our tuple parentheses. 我们把它放在我们的2号。 We put it in our number 2. 我们加上逗号。 And we add the comma. 当我们现在问Python什么类型的对象是c时,我们知道这是一个元组。 When we now ask Python what type of object is c,we know that this is a tuple. 最后,如果需要,还可以省略括号。 Finally, if you want, you can also omit the parentheses. 这也行得通。 This also works. 但代码并不十分清楚。 But the code is not quite as clear. 这就是为什么我建议在使用元组时使用括号。 That’s why I recommend using parentheses whenever you’re using a tuple.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python数据分析(中英对照)·Introduction to NumPy Arrays NumPy 数组简介
NumPy is a Python module designed for scientific computation. NumPy是为科学计算而设计的Python模块。 NumPy has several very useful features. NumPy有几个非常有用的特性。 Here are some examples. 这里有一些例子。 NumPy arrays are n-dimensional array objects and they are a core component of scientific and numerical computation in Python. NumPy数组是n维数组对象,是Python中科学和数值计算的核心组件。 NumPy also provides tools for integrating your code with existing C,C++, and Fortran code. NUMPY还提供了将代码与现有C、C++和FORTRAN代码集成的工具。 NumPy also provides many useful tools to help you perform linear algebra, generate random numbers, and much, much more. NumPy还提供了许多有用的工具来帮助您执行线性代数、生成随机数等等。 You can learn more about NumPy from the website numpy.org. 您可以从网站NumPy.org了解更多关于NumPy的信息。 NumPy arrays are an additional data type provided by NumPy,and they are used for representing vectors and matrices. NumPy数组是NumPy提供的附加数据类型,用于表示向量和矩阵。 Unlike dynamically growing Python lists, NumPy arrays have a size that is fixed when they are constructed. 与动态增长的Python列表不同,NumPy数组的大小在构造时是固定的。 Elements of NumPy arrays are also all of the same data type leading to more efficient and simpler code than using Python’s standard data types. NumPy数组的元素也都是相同的数据类型,这使得代码比使用Python的标准数据类型更高效、更简单。 By default, the elements are floating point numbers. 默认情况下,元素是浮点数。 Let’s start by constructing an empty vector and an empty matrix. 让我们先构造一个空向量和一个空矩阵。 By the way, don’t worry if you’re not that familiar with matrices. 顺便说一句,如果你对矩阵不太熟悉,别担心。 You can just think of them as two-dimensional tables. 你可以把它们想象成二维表格。 We will always use the following way to import NumPy into Python– import numpy as np. 我们将始终使用以下方法将NumPy导入Python——将NumPy作为np导入。 This is the import we will always use. 这是我们将始终使用的导入。 We’re first going to define our first zero vector using the numpy np.zeros function. 我们首先要用numpy np.zeros函数定义我们的第一个零向量。 In this case, if we would like to have five elements in the vector,we can just type np.zeros and place the number 5 inside the parentheses. 在这种情况下,如果我们想在向量中有五个元素,我们可以只键入np.zero并将数字5放在括号内。 We can defin
数媒派
2022/12/01
1.1K0
Python数据分析(中英对照)·Sets 集合
1.2.6: Sets 集合 集合是不同散列对象的无序集合。 Sets are unordered collections of distinct hashable objects. 但是,对象是
数媒派
2022/12/01
3480
Python数据分析(中英对照)·Lists 列表
列表是任何类型的对象的可变序列。 Lists are mutable sequences of objects of any type. 它们通常用于存储同质项目。 And they’re typically used to store homogeneous items. 列表是序列的一种类型,就像字符串一样,但它们确实有区别。 Lists are one type of sequence, just like strings but they do have their differences. 如果我们比较字符串和列表,一个区别是字符串是单个字符的序列, If we compare a string and a list, one difference is that strings are sequences of individual characters, 而列表是任何类型Python对象的序列。 whereas lists are sequences of any type of Python objects. 字符串和列表之间的另一个区别是字符串是不可变的,而列表是可变的。 Another difference between strings and lists is that strings are immutable, whereas lists are mutable. 除了这两个区别之外,字符串和列表当然也有自己的方法。 In addition to these two differences, strings and lists, of course,come with their own methods. 通常情况下,列表只包含一种类型的对象,尽管这不是严格的要求。 It is common practice for a list to hold objects of just one type,although this is not strictly a requirement. 让我们尝试几个简单的列表来测试它们。 Let’s try a couple of simple lists to experiment with them. 让我们构造一个简单的数字列表,以进一步了解列表。 Let’s construct a simple list of numbers to learn a little bit more about lists. 所以我要构造一个数字列表。 So I’m going to construct a list of numbers. 我要称之为数字。 I’m going to call it numbers. 我将使用数字2、4、6和8。 And I’ll use numbers 2, 4, 6, and 8. 假设我想提取或访问列表中的第一个元素。 Imagine I wanted to extract, or access, the first element of my list. 我要做的第一件事是键入列表的名称,然后我需要方括号。 The first thing for me to do is type the name of the list,then I need my square brackets. 现在请记住,在Python中,索引从零开始。 Now remember, in Python, indexes start at zero. 因此,为了能够查看该列表的第一个元素,我需要将其放入索引0,位置0。 So for me to be able to look at the first element of that list,I need to put in index 0, position 0. 在这里,Python告诉我第一个对象,即位于位置0的对象,是数字2。 Here, Python tells me that the first object, meaning the object located at position 0, is number 2. 如果我将索引更改为1,Python将给我第二个对象。 If I change the index to 1, Python gives me the second object. 现在,如果我想知道列表上最后一个对象是什么,我可以从右到左计算位置。 Now if I wanted to find out what is the very last object on my list,I can count positions from right to left. 这意味着我必须使用负指数。 And
数媒派
2022/12/01
4410
Python数据分析(中英对照)·Dictionaries 字典
字典是从键对象到值对象的映射。 Dictionaries are mappings from key objects to value objects. 字典由键:值对组成,其中键必须是不可变的,值可以是任何值。 Dictionaries consists of Key:Value pairs, where the keys must be immutable and the values can be anything. 词典本身是可变的,因此这意味着一旦创建词典,就可以动态修改其内容。 Dictionaries themselves are mutable so this means once you create your dictionary, you can modify its contents on the fly. 字典可用于对无序数据执行非常快速的查找。 Dictionaries can be used for performing very fast look-ups on unordered data. 关于词典,需要注意的一个关键方面是它们不是序列,因此不保持任何类型的左右顺序。 A key aspect to be aware about regarding dictionaries is that they are not sequences, and therefore do not maintain any type of left-right order. 这意味着,如果在字典上循环,Key:Value对将以任意顺序迭代。 This means that if you’re looping over a dictionary,the Key:Value pairs will be iterated over in arbitrary order. 让我们看一个图表来阐明这个观点。 Let’s look at a diagram to clarify this idea. 我们将建立一个简单的字典,其中有与value对象关联的第一个键。 We’re going to set up a simple dictionary where we have our first key that’s associated with a value object. 我们有第二把钥匙,和另一个物体在一起。 We have our second key that goes with another object. 假设我们这里有第四个键,它和相应的值对象一起。 And let’s say we have key number four here which goes with the corresponding value object. 如果这是一个字典,那么这个键对象将始终与这个值对象相关联。 If this is a dictionary, this key object will always be associated with this value object. 类似地,此键将始终与此值对象一起使用。 Similarly, this key will always go with this value object. 当我们说字典不维护任何类型的左或右顺序时,我们所说的是这些键值对本身的顺序没有定义。 When we say that dictionaries don’t maintain any type of left or right order, what we’re saying is that the ordering of these key-value pairs themselves is not defined. 这意味着如果我在这些对上循环,我可能首先得到对应于我的第二个密钥的对。 That means if I’m looping over these pairs,I might first get the pair that corresponds to my second key here. 然后让我们看看字典的一些用法。 Let’s then look at some uses of dictionaries. 我想编一本叫做《年龄》的字典。 I would like to set up a dictionary which is called age. 如果我希望这是一个空字典,我有两种方法来构造它。 And if I want this to be an empty dictionary,I have two ways to construct that. 第一种方法是只使用一对花括号,这会给
数媒派
2022/12/01
4980
Python数据分析(中英对照)·Simulating Randomness 模拟随机性
Many processes in nature involve randomness in one form or another. 自然界中的许多过程都以这样或那样的形式涉及随机性。 Whether we investigate the motions of microscopic molecules or study the popularity of electoral candidates,we see randomness, or at least apparent randomness, almost everywhere. 无论我们研究微观分子的运动,还是研究候选人的受欢迎程度,我们几乎处处都能看到随机性,或者至少是明显的随机性。 In addition to phenomena that are genuinely random,we often use randomness when modeling complicated systems 除了真正随机的现象外,我们在建模复杂系统时经常使用随机性 to abstract away those aspects of the phenomenon for which we do not have useful simple models. 将我们没有有用的简单模型的现象的那些方面抽象出来。 In other words, we try to model those parts of a process that we can explain in relatively simple terms,and we assume, true or not, that the rest is noise. 换句话说,我们试图对过程中那些我们可以用相对简单的术语解释的部分进行建模,并且我们假设,不管是真是假,其余部分都是噪音。 To put this differently, we model what we can,and whatever it happens to be left out, we attribute to randomness. 换一种说法,我们对我们能做的事情进行建模,不管发生什么,我们都将其归因于随机性。 These are just some of the reasons why it’s important to understand how to simulate random numbers and random processes using Python. 这些只是理解如何使用Python模拟随机数和随机进程很重要的一些原因。 We have already seen the random module. 我们已经看到了随机模块。 We will be using that to simulate simple random processes,but we’ll also take a look at some other tools the Python has to generate random numbers. 我们将使用它来模拟简单的随机过程,但我们还将看看Python生成随机数的其他一些工具。 Let’s see how we can use the random choice function to carry out perhaps the simplest random process – the flip of a single coin. 让我们看看如何使用随机选择函数来执行可能是最简单的随机过程——抛一枚硬币。 I’m first going to import the random library. 我首先要导入随机库。 So I type import random. 所以我输入import random。 Then we’ll use the random choice function. 然后我们将使用随机选择函数。 We first need parentheses. 我们首先需要括号。 And in this case, we need some type of a sequence, here a list,to contain the elements of the sequence. 在这种情况下,我们需要某种类型的序列,这里是一个列表,来包含序列的元素。 I’m going to go with two strings, H for heads and T for tails. 我要用两根弦,H代表正面,T代表反面。 If I now run this code, Python will pick one of the
数媒派
2022/12/01
5020
Python数据分析(中英对照)·Sequences 序列
在Python中,序列是按位置排序的对象集合。 In Python, a sequence is a collection of objects ordered by their position. 在Python中,有三个基本序列,即列表、元组和所谓的“范围对象”。 In Python, there are three basic sequences,which are lists, tuples, and so-called "range objects". 但是Python也有额外的序列类型来表示字符串之类的东西。 But Python also has additional sequence types for representing things like strings. 关于序列的关键方面是,任何序列数据类型都将支持公共序列操作。 The crucial aspect about sequences is that any sequence data type will support the common sequence operations. 但是,除此之外,这些不同的类型将有自己的方法可用于执行特定的操作。 But, in addition, these different types will have their own methods available for performing specific operations. 序列被称为“序列”,因为它们包含的对象形成了一个序列。 Sequences are called "sequences" because the objects that they contain form a sequence. 让我们以图表的形式来看。 So let’s look at this as a diagram. 假设这是我们的序列,在这个例子中,序列中有一些不同的对象——三角形、正方形和圆形。 Imagine that this is our sequence, and we have a few different objects in our sequence here– triangles, squares,and circles, in this example. 要理解序列的第一个基本方面是索引从0开始。 The first, fundamental aspect to understand about sequences is that indexing starts at 0. 因此,如果我们称这个序列为“s”,我们将通过键入“s”来访问序列中的第一个元素,并在括号中放入它的位置,即0。 So if we call this sequence "s", we would access the first element in our sequence by typing "s" and, in brackets, putting its location, which is 0. 这个位于第二个位置的对象将作为s[1]进行寻址和访问,依此类推。 This object here in the second position would be addressed and accessed as s[1], and so on. 这将是s2,3和4。 This would be s 2, 3, and 4. 访问序列中对象的另一种方法不是从左向右计数,而是从右向左计数。 Another way to access objects within the sequence is not to count from left to right, but from right to left. 所以我们可以通过给出一个正的索引来访问序列,这是从左到右计数一个位置,或者我们可以使用一个负的索引,这是从右到左计数位置。 So we can access sequences either by giving a positive index, which is counting a location from the left to right,or we can use a negative index, which is counting positions from right to left. 在这种情况下,我们必须对序列中的最后一个对象使用负1。 In that case, we have to use the negative 1 for the very last object in our sequence. 相应地,负2对应于倒数第二个对象,依此类推。 Corresponding
数媒派
2022/12/01
4540
Python数据分析(中英对照)·Modules and Methods 模块和方法
1.1.3: Modules and Methods 模块和方法 让我们谈谈模块。 Let’s talk a little bit about modules. Python模块是代码库,您可以使用import语句导入Python模块。 Python modules are libraries of code and you can import Python modules using the import statements. 让我们从一个简单的案例开始。 Let’s start with
数媒派
2022/12/01
4280
Python数据分析(中英对照)·Using the NumPy Random Module 使用 NumPy 随机模块
NumPy makes it possible to generate all kinds of random variables. NumPy使生成各种随机变量成为可能。 We’ll explore just a couple of them to get you familiar with the NumPy random module. 为了让您熟悉NumPy随机模块,我们将探索其中的几个模块。 The reason for using NumPy to deal with random variables is that first, it has a broad range of different kinds of random variables. 使用NumPy来处理随机变量的原因是,首先,它有广泛的不同种类的随机变量。 And second, it’s also very fast. 第二,速度也很快。 Let’s start with generating numbers from the standard uniform distribution,which is a the completely flat distribution between 0 and 1 such that any floating point number between these two endpoints is equally likely. 让我们从标准均匀分布开始生成数字,这是一个0和1之间完全平坦的分布,因此这两个端点之间的任何浮点数的可能性相等。 We will first important NumPy as np as usual. 我们会像往常一样,先做一个重要的事情。 To generate just one realization from this distribution,we’ll type np dot random dot random. 为了从这个分布生成一个实现,我们将键入np-dot-random-dot-random。 And this enables us to generate one realization from the 0 1 uniform distribution. 这使我们能够从01均匀分布生成一个实现。 We can use the same function to generate multiple realizations or an array of random numbers from the same distribution. 我们可以使用同一个函数从同一个分布生成多个实现或一个随机数数组。 If I wanted to generate a 1d array of numbers,I will simply insert the size of that array, say 5 in this case. 如果我想生成一个一维数字数组,我只需插入该数组的大小,在本例中为5。 And that would generate five random numbers drawn from the 0 1 uniform distribution. 这将从0-1均匀分布中产生五个随机数。 It’s also possible to use the same function to generate a 2d array of random numbers. 也可以使用相同的函数生成随机数的2d数组。 In this case, inside the parentheses we need to insert as a tuple the dimensions of that array. 在本例中,我们需要在括号内插入该数组的维度作为元组。 The first argument is the number of rows,and the second argument is the number of columns. 第一个参数是行数,第二个参数是列数。 In this case, we have generated a table — a 2d table of random numbers with five rows and three columns. 在本例中,我们生成了一个表——一个由五行三列随机数组成的二维表。 Let’s then look at the normal distribution. 让我们看看正态分布。 It requires the mean and the standard deviation as its input parameters. 它需
数媒派
2022/12/01
1.1K0
Python数据分析(中英对照)·Strings 字符串
1.2.5: Strings 字符串 字符串是不可变的字符序列。 Strings are immutable sequences of characters. 在Python中,可以将字符串括在单引号、引号或三引号中。 In Python, you can enclose strings in either single quotes,in quotation marks, or in triple quotes. 让我们看一下字符串上的几个常见序列操作。 Let’s look at a coup
数媒派
2022/12/01
3780
Python数据分析(中英对照)·Classes and Object-Oriented Programming类和面向对象编程
Our emphasis has been and will be on functions and functional programming,but it’s also helpful to know at least something about classes and object-oriented programming. 我们的重点一直是函数和函数编程,但至少了解一些类和面向对象编程也是很有帮助的。 In general, an object consists of both internal data and methods that perform operations on the data. 通常,对象由内部数据和对数据执行操作的方法组成。 We have actually been using objects and methods all along,such as when working with building types like lists and dictionaries. 事实上,我们一直在使用对象和方法,例如在处理列表和字典之类的构建类型时。 You may find at some point that an existing object type doesn’t fully suit your needs, in which case you can create a new type of object known as a class. 在某些情况下,您可能会发现现有的对象类型并不完全满足您的需要,在这种情况下,您可以创建一种称为类的新对象类型。 Often it is the case that even if you need to create a new object type,it is likely that this new object type resembles,in some way, an existing one. 通常情况下,即使需要创建新的对象类型,该新对象类型也可能在某种程度上类似于现有对象类型。 This brings us to inheritance, which is a fundamental aspect of object-oriented programming. 这就引出了继承,这是面向对象编程的一个基本方面。 Inheritance means that you can define a new object type, a new class, that inherits properties from an existing object type. 继承意味着您可以定义一个新的对象类型,一个新的类,它继承现有对象类型的属性。 For example, you could define a class that does everything that Python’s built-in lists do, and then add an additional method or methods based on your needs. 例如,您可以定义一个类来完成Python内置列表所做的一切,然后根据需要添加一个或多个附加方法。 As a quick reminder of how we’ve been using methods so far,let’s define a list, ml, which consists of a sequence of numbers. 为了快速提醒我们到目前为止是如何使用方法的,让我们定义一个列表ml,它由一系列数字组成。 If I wanted to sort this list, I can use the sort method which is provided by the ml object, a list. 如果我想对这个列表进行排序,我可以使用由ml对象(列表)提供的排序方法。 If I now look at the contents of the list,we can see that the values have been sorted. 如果我现在查看列表的内容,我们可以看到这些值已被排序。 Let’s look at an example of how to create a new class,essentially a new type of Python object. 让我们看一个如何创建一个新类的示例,本质上是一个新类型的Python对象。 A class is defined using the class statement. 类是使用class语句定义的。 Class,
数媒派
2022/12/01
3310
Python数据分析(中英对照)·Random Choice 随机选择
通常,当我们使用数字时,偶尔也会使用其他类型的对象,我们希望使用某种类型的随机性。 Often when we’re using numbers, but also,occasionally, with other types of objects,we would like to do some type of randomness. 例如,我们可能想要实现一个简单的随机抽样过程。 For example, we might want to implement a simple random sampling process. 为此,我们可以使用随机模块。 To this end, we can use the random module. 所以,我们的出发点是,再次导入这个模块,random。 So the starting point is, again, to import that module, random. 让我们考虑一个简单的例子,其中列表中包含一组数字,我们希望从这些数字中随机统一选择一个。 Let’s think about a simple example where we have a set of numbers contained in a list,and we would like to pick one of those numbers uniformly at random. 在本例中,我们需要使用的函数是random.choice,在括号内,我们需要一个列表。 The function we need to use in this case is random.choice,and inside parentheses, we need a list. 在这个列表中,我将只输入几个数字——2、44、55和66。 In this list, I’m going to just enter a few numbers– 2, 44, 55, and 66. 然后,当我运行随机选择时,Python会将其中一个数字返回给我。 And then when I run the random choice, Python returns one of these numbers back to me. 如果我重复同一行,我会得到一个不同的答案,因为Python只是随机选取其中一个对象。 If I repeat the same line, I’m going to get a different answer,because, again, Python is just picking one of those objects at random. 关于随机选择方法,需要了解的一个关键点是Python并不关心所使用对象的基本性质 A crucial thing to understand about the random choice method is that Python doesn’t care about the fundamental nature of the objects that 都包含在该列表中。 are contained in that list. 这意味着,不用数字,我也可以从几个字符串中选择一个。 What that means, instead of using numbers,I could also be choosing one out of several strings. 让我们看看这是怎么回事。 So let’s see how that might work. 我要回到我的清单上。 I’m going to go back to my list. 我只想在这里包括三个短字符串。 I’m just going to include three short strings here. 让我们只做“aa”,“bb”和“cc” Let’s just do "aa," "bb," and "cc." 我可以让Python随机选择其中一个。 I can ask Python to pick one of these uniformly at random. 因此Python并不关心这些对象的性质。 So Python doesn’t care about the nature of these objects. 对于任何类型的对象,随机的工作方式都是一样的。 Random works just the same way for any type of object.
数媒派
2022/12/01
4520
Python数据分析(中英对照)·Random Walks 随机游走
This is a good point to introduce random walks. 这是引入随机游动的一个很好的观点。 Random walks have many uses. 随机游动有许多用途。 They can be used to model random movements of molecules, 它们可以用来模拟分子的随机运动, but they can also be used to model spatial trajectories of people, 但它们也可以用来模拟人的空间轨迹, the kind we might be able to measure using GPS or similar technologies. 我们可以用GPS或类似的技术来测量。 There are many different kinds of random walks, and properties of random walks 有许多不同种类的随机游动,以及随机游动的性质 are central to many areas in physics and mathematics. 是物理学和数学许多领域的核心。 Let’s look at a very basic type of random walk on the white board. 让我们看看白板上一种非常基本的随机行走。 We’re first going to set up a coordinate system. 我们首先要建立一个坐标系。 Let’s call this axis "y" and this "x". 我们把这个轴叫做“y”,这个叫做“x”。 We’d like to have the random walk start from the origin. 我们想让随机游动从原点开始。 So this is position 1 for the random walk. 这是随机游动的位置1。 To get the position of the random walker at time 1, we can pick a step size. 为了得到时间1时随机行走者的位置,我们可以选择一个步长。 In this case, I’m just going to randomly draw an arrow. 在这种情况下,我将随机画一个箭头。 And this gives us the location of the random walker at time 1. 这给了我们时间1的随机游走者的位置。 So this point here is time is equal to 0. 这里的时间等于0。 And this point here corresponds to time equal to 1. 这一点对应于等于1的时间。 We can take another step. 我们可以再走一步。 Perhaps in this case, we go down, say over here. 也许在这种情况下,我们下去,比如说在这里。 And this is our location for the random walker at time t is equal to 2. 这是时间t等于2时,随机游走者的位置。 This is the basic idea behind all random walks. 这是所有随机游动背后的基本思想。 You have some location at time t, and from that location 你在时间t有一个位置,从这个位置开始 you take a step in a random direction and that generates your location 你在一个随机的方向上迈出一步,这就产生了你的位置 at time t plus 1. 在时间t加1时。 Let’s look at these a little bit more mathematically. 让我们从数学的角度来看这些。 First, we’re going to start with the location of the random walk at time t 首先,我们从时间t的随机游动的位置开始 is equal to 0. 等于0。 So position x at time t is equal to 0 is whatever 所以时间t处的位置x等于0是什么 the location of the random walke
数媒派
2022/12/01
5270
Python数据分析(中英对照)·Scope Rules范围规则
2.1.1: Scope Rules范围规则 Let’s talk about scope rules next. 接下来我们来讨论范围规则。 Consider a situation where, in different places of your code,you have to find several functions called "update," 考虑一个情况,在代码的不同地方,你必须找到几个叫做“更新”的函数。 or several variables called "x."
数媒派
2022/12/01
3220
Python数据分析(中英对照)·Ranges 范围
范围是不可变的整数序列,通常用于for循环。 Ranges are immutable sequences of integers,and they are commonly used in for loops. 要创建一个范围对象,我们键入“range”,然后输入范围的停止值。 To create a range object, we type "range" and then we put in the stopping value of the range. 现在,我们刚刚创建了一个范围对象,但是如果您想查看该对象的实际内容,那么这就没有多大帮助了。 Now, we’ve just created a range object, but this is less helpful if you would like to see what’s the actual content of that object. 虽然,我们通常不会在Python程序中这样做,但为了真正看到该范围对象的内容,我们可以在这种情况下将其转换为列表。 Although, we wouldn’t typically do this in a Python program,for us to really see the content of that range object,so what we can do in this case is we can turn it into a list. 所以如果我们说“范围5列表”,我们会看到范围对象由五个数字组成,从0到4。 So if we say "list of range 5," we’ll see that the range object consists of five numbers, from 0 to 4. 范围的输入参数是停止值。 The input argument to range is the stopping value. 记住,Python在到达停止值之前停止。 And remember, Python stops before it hits the stopping value. 这就是为什么范围5实际上不包含数字5。 That’s why range 5 does actually not contain the number 5. 我们可以为range函数提供额外的参数。 We can provide additional arguments to the range function. 例如,我们可以提供起点,也可以定义步长。 For example, we can provide the starting point,and we can also define the step size. 所以如果我们输入“range1到6”,在这种情况下,我们得到一个range对象,它从1开始,到5结束。 So if we type "range 1 to 6," in that case,we get a range object which starts at 1 and ends at 5. 如果我们想以2为增量,我们可以这样做。 If we wanted to go in increments of two, we could do something like this. 我们可以从1开始,一直到13——13号,不包括它本身——我们可以分两步走。 We could start from 1, go up to 13– number 13,not itself included– and we could go in steps of two. 在本例中,我们得到一个从1开始到11结束的范围对象。 In this case, we get a range object that starts at 1 and ends at 11. 通常,当我们在Python程序中使用范围对象时,我们不会首先将它们转换为列表。 Typically when we use range objects in our Python programs,we do not first turn them into lists. 我们在这里这样做只是为了让我们更容易理解这些对象的作用。 We’ve done it here only so that it’s easier for us to understand what these objects do. 当然,您可以在for循环上下文中使用list对象,但由于以下原因,它是有问题的。 You can certainly use a list object in a
数媒派
2022/12/01
3440
Python数据分析(中英对照)·Introduction to Matplotlib and Pyplot-Matplotlib 和 Pyplot 介绍
Matplotlib is a Python plotting library that produces publication-quality figures. Matplotlib是一个Python绘图库,用于生成出版物质量的图形。 It can be used both in Python scripts and when using Python’s interactive mode. 它既可以在Python脚本中使用,也可以在使用Python的交互模式时使用。 Matplotlib is a very large library, and getting to know it well takes time. Matplotlib是一个非常大的库,了解它需要时间。 But often we don’t need the full matplotlib library in our programs,and this is where Pyplot comes in handy. 但是我们的程序中通常不需要完整的matplotlib库,这就是Pyplot的用武之地。 Pyplot is a collection of functions that make matplotlib work like Matlab,which you may be familiar with. Pyplot是一组函数,使matplotlib像Matlab一样工作,您可能熟悉这些函数。 Pyplot is especially useful for interactive work,for example, when you’d like to explore a dataset or visually examine your simulation results. Pyplot对于交互式工作尤其有用,例如,当您希望浏览数据集或直观地检查模拟结果时。 We’ll be using Pyplot in all our data visualizations. 我们将在所有数据可视化中使用Pyplot。 Pyplot provides what is sometimes called a state machine interface to matplotlib library. Pyplot为matplotlib库提供了有时称为状态机的接口。 You can loosely think of it as a process where you create figures one at a time,and all commands affect the current figure and the current plot. 您可以粗略地将其视为一个一次创建一个地物的过程,所有命令都会影响当前地物和当前绘图。 We will mostly use NumPy arrays for storing the data that we’d like to plot, but we’ll occasionally use other types of data objects such as built-in lists. 我们将主要使用NumPy数组来存储要绘制的数据,但偶尔也会使用其他类型的数据对象,如内置列表。 As you may have realized, saying matplotlib.pyplot is kind of a mouthful, and it’s a lot to type too. 正如您可能已经意识到的那样,说matplotlib.pyplot有点口齿不清,而且打字也很费劲。 That’s why virtually everyone who uses the library imports it as plt, which is a lot shorter. 这就是为什么几乎所有使用该库的人都将其作为plt导入,而plt要短得多。 So to import the library, we will type the following– import matplotlib.pyplot as plt. 因此,要导入库,我们将键入以下内容–import matplotlib.pyplot as plt。 Now we are ready to start our plotting. 现在我们准备开始我们的阴谋。 A basis but very useful command is the plt plot function, which can be used to plot lines and markers. plt plot函数是一个基本
数媒派
2022/12/01
5470
Python数据分析(中英对照)·Indexing NumPy Arrays 索引 NumPy 数组
2.2.3: Indexing NumPy Arrays 索引 NumPy 数组 NumPy arrays can also be indexed with other arrays or other sequence-like objects like lists. NumPy数组也可以与其他数组或其他类似于序列的对象(如列表)建立索引。 Let’s take a look at a few examples. 让我们来看几个例子。 I’m first going to define my arr
数媒派
2022/12/01
5900
Python数据分析(中英对照)·Customizing Your Plots-自定义绘图
There are a few important elements that can be easily added to plots. 有几个重要元素可以轻松添加到绘图中。 For example, we can add a legend with the legend function. 例如,我们可以使用图例功能添加图例。 We can adjust axes with axis, where axis is spelled A-X-I-S. 我们可以用axis调整轴,其中axis拼写为A-X-I-S。 We can set axis labels using xlabel and ylabel. 我们可以使用xlabel和ylabel设置轴标签。 And we can save a figure using savefig. 我们可以使用savefig保存一个图形。 In that case, the file format extension specifies the format of the file,such as pdf or png. 在这种情况下,文件格式扩展名指定文件的格式,如pdf或png。 Let’s now add these elements to our previous plot. 现在,让我们将这些元素添加到上一个绘图中。 I’m going to construct this plot in the editor. 我将在编辑器中构建这个情节。 So I’m going to take my first line and place that in the editor. 所以我要把我的第一行放到编辑器中。 Then I’m going to take my second line and just copy paste that in the editor. 然后,我将获取第二行,并将其复制粘贴到编辑器中。 If I want to construct the full plot, I’m going to find my definition of x, so we have a full example,x was defined here. 如果我想构造完整的图,我会找到我对x的定义,所以我们有一个完整的例子,x在这里被定义。 Then we had definitions of y1, which was given here. 然后我们有了y1的定义,这里给出了。 And we have also our definition of y2, which is here. 我们还有y2的定义,在这里。 This is the plot that we’ve been looking at so far. 这是我们到目前为止一直在看的情节。 I’m going to start by adding axes labels to this plot. 我将首先向这个图中添加轴标签。 I’m going to type plt.xlabel. 我要输入plt.xlabel。 And we’ll just put it in an X for the x-axis. 我们把它放在X轴上。 And we can use the same idea for ylabel, in which case we’ll just call it Y. 我们可以对ylabel使用相同的想法,在这种情况下,我们将其称为Y。 If you’re familiar with LaTeX, which is the typesetting software often used in mathematical publications, you’ll be pleased to know that plt also knows LaTeX. 如果您熟悉LaTeX,这是数学出版物中经常使用的排版软件,您会很高兴知道plt也了解LaTeX。 If you’re not familiar with it, here’s a brief idea. 如果你不熟悉它,这里有一个简单的想法。 We can take a mathematical notation or a symbol like x,and we can put dollar signs around that. 我们可以用一个数学符号或者像x这样的符号,我们可以在它周围加上美元符号。 All this does is that it changes the appearance of x and y in your plot. 所有这一切只是改变了绘图中x
数媒派
2022/12/01
6900
07 Python序列类型深入解析:从range到元组
range()是Python中一个非常实用的内置函数,用于生成一个数字序列。它的特点是内存效率高,因为它不会立即生成所有数字,而是在需要时才生成(惰性求值)。
全栈若城
2025/02/28
1970
07 Python序列类型深入解析:从range到元组
Hello Python 教程1
因为我的树莓派只要开机风扇就会不停的转为了控制风扇的转速我需要写一些脚本来控制gpio接口。所以作为兴趣就学习了一下python语言,当然python的实际作用远不止此,先看看基础的再深入的了解下吧。MacOS自带的Python是2.7x,但是我使用的是3.x 。当然这两者是有差异的,即使你不懂python也可以从版本号上看出来这个差异。 The key differences between Python 2.7.x and Python 3.x with examples <-这篇博客详细说明了2.x与3.x的区别。因为本人是从3.x学习python的所以后面的博文都会以3.x作为案例。
keyle
2024/11/01
1140
Hello Python 教程1
如何在 Django 中测试模型表单
根据错误信息,可以发现问题是 FilterForm 是一个绑定表单,需要有一个模型实例作为上下文。在测试用例中,没有为 FilterForm 设置模型实例。
用户11021319
2024/03/13
1.1K0
如何在 Django 中测试模型表单
推荐阅读
相关推荐
Python数据分析(中英对照)·Introduction to NumPy Arrays NumPy 数组简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档