pythonconcatenate
❶ python怎麼讓列表最後兩個用和連接
python列表連接列表
In this tutorial, we will unveil different methods to concatenate lists in Python. Python Lists serve the purpose of storing homogeneous elements and perform manipulations on the same.
在本教程中,我們將揭示在Python中串聯列表的不同方法。 Python列表用於存儲同類元素並對其進行操作。
In general, Concatenation is the process of joining the elements of a particular data-structure in an end-to-end manner.
通常,串聯是指以端到端的方式連接特定數據結構的元素的過程。
The following are the 6 ways to concatenate lists in Python.
以下是在Python中串聯列表的6種方法。
concatenation (+) operator
串聯(+)運算符
Naive Method
天真的方法
List Comprehension
清單理解
extend() method
extend()方法
『*』 operator
'*'運算符
itertools.chain() method
itertools.chain()方法
❷ python腳本運行提示cannot concatenate 'str' and 'int' objects
#!/usr/bin/envpython
#coding=utf-8
"""
convertstrtoint
"""
from__future__importprint_function
importsys
defgetsum(m):
sum=0
foriinrange(1,m+1):
sum+=i
returnsum
if__name__=="__main__":
n=sys.argv[1]
print(getsum(int(n)))
sys.argv 確實是字元串,可以用 int() 轉為整數。
❸ python的numpy中合並array
直接用實例說明:
In [1]: import numpy
In [2]: a = array([[1,2,3],[4,5,6]])
In [3]: b = array([[9,8,7],[6,5,4]])
In [4]: numpy.concatenate((a,b))
Out[4]:
array([[1, 2, 3],
[4, 5, 6],
[9, 8, 7],
[6, 5, 4]])
或者這么寫
In [1]: a = array([1,2,3])
In [2]: b = array([4,5,6])
In [3]: numpy.vstack((a,b))
Out[3]:
array([[1, 2, 3],
[4, 5, 6]])
❹ 雷達圖報錯
labels下面加一行:
labels=np.concatenate((labels,[labels[0]]))
❺ Python學習之惰性求值
惰性求值,也就是延遲求值,表達式不會在它被綁定到變數之後就立即求值,而是等用到時再求值。這個特性可以解決一些巨大甚至無限的集合列表,如菲波那切數列、幾十G的文件等等。延遲求值的一個好處是能夠建立可計算的無限列表而沒有妨礙計算的無限循環或大小問題。
Python中的很多方法沒有直接返回列表,而是返回了一個可迭代的generator
(生成器)對象,這便是python的惰性求值,因為在創建一個很大的列表時,對內存的開銷非常大,太大時python會直接報錯,舉個:chestnut::range()方法是產生一個指定范圍列表,在Python3之前,該方法直接產生一個列表,xrange()產生一個生成器:
>>>xrange(100)
xrange(100)
>>>range(100)
[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, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
當參數裡面的值足夠大時,range()產生了一個巨大的列表,這是內存會吃不消,等待一段時間後程序會直接被Kill掉:
>>>foriinrange(999999999999):
...
printi
...
Killed:
9
占滿內存
用xrange()方法就不回出現這種問題,並且可以一直運行:
>>>foriinxrange(999999999999):
...
printi
...
0
1
2
3
4
5
6
7
8
9
10...
在Python3中range已經被改為了xrange,所以在python3中可以放心使用range().
惰性求值不要求你事先准備好整個迭代過程中所有的元素。迭代器僅僅在迭代至某個元素時才計算該元素,而在這之前或之後,元素可以不存在或者被銷毀
還有前文所說的list comprehension語句,在兩邊放上[],會產生別表,如果數據源很長則會報內存錯誤:
>>>
print [iforiinrange(9999999999999999)]
Python(1627,0x7fffe5b713c0)
malloc: *** mach_vm_map(size=80000000000000000) failed
(errorcode=3)
***error:
can't allocate region
***seta
breakpointinmalloc_error_breaktodebug
Traceback
(most recentcalllast):
File "",
line 1,in<</span>mole>
MemoryError
這樣直接產生列表沒有效率,為了創建生成器對象,可以在list
comprehension兩邊放上(),這樣它就有了惰性求值的特性。
>>>
print((ifori
inrange(99999999999999)))
使用next()內建函數訪問生成器里的元素:
num =
(iforiinrange(5))
>>>
num
>>>>
next(num)
0
>>>
next(num)
1
>>>
for j in range(4):
...
print(next(num))
...
2
3
4
Traceback
(most recent call last):
File "",
line 2,in<</span>mole>
StopIteration
當訪問到最後元素時,再調用next(),Python將會拋出StopIteration異常。Python正是根據是否檢查到這個異常來決定是否停止迭代。
step1 =
someLongOperation1()step2 = someLongOperation2()step3 =
concatenate(step1, step2)
以上代碼需要分別執行一二兩步操作,第三步用到一二兩步的結果,在Pyhton中會有序的執行這些函數:首先是someLongOperation1,然後someLongOperation2,最後concatenate,如果確保沒有函數修改或依賴於全局變數,第一二步可以被並行執行。假設我們不想並行運行這兩個函數,我們只在其他函數依賴於step1和step2時才需要執行這兩個函數。我們甚至在concatenate調用之前都不必執行他們,可以把他們的求值延遲到concatenate函數內實際用到他們的位置。如果函數中用到了if分支語句,條件無關step1和step2則可以盡量將判斷條件放前面以減少不必要的計算:
step1 =
someLongOperation1()
step2 =
someLongOperation2()ifcondition:
step3 =
concatenate(step1, step2)
換為:ifcondition:
step1 =
someLongOperation1()
step2 =
someLongOperation2()
step3 =
concatenate(step1, step2)
如果concatenate是一個帶有條件分支的函數並且有的分支中只用了兩個參數中的一個,另一個參數就永遠沒有必要被求值。
❻ Python基礎 numpy中的常見函數有哪些
有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。
數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a
數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合
數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組
數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大於n的元素設定為n,小於m的元素設定為m
2.a.compress()返回根據給定條件篩選後的數組
數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所佔的位元組數
6.a.nbytes整個數組a所佔的內存空間7.a.astype(int)轉換a數組的類型為int型
數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標准差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。
❼ python程序問題(TypeError: cannot concatenate 'str' and 'int' objects)
Python allow to concatenate strings by '+', but here, your p is an integer.
So, to solve it, you can use either of these:
1. print 'Is your secret number " + str(p) + "?"
2. print 'Is your secret number %d?"%p
(for multiple integers, you can '%d %d %d'%(num1, num2, num3)
3. print 'Is your secret number {0}?".format(p)
I personally like the second one best. It's more of c style, doesn't it?
❽ Python如何重疊圖片
from PIL import Image
import math
import os
os.chdir('圖片地址路徑')
img_A = Image.open('A圖片') #讀取圖片A
for i in [圖片名]:
img_temp = Image.open(i') #依次讀取其它圖片
final_img = Image.blend(img_A, img_temp, 0.5)
final_img.save('路徑\新的圖片名')